2016-08-04 8 views
0

私のSpriteKitゲームでは、すべて風景で、私はSafariViewControllerを表示しています。Swift SafariViewController animation

func showSafariViewController(forURL url: String) { 
    guard let validURL = NSURL(string: url) else { return } 

    let safariViewController = SFSafariViewController(URL: validURL) 
    safariViewController.delegate = self 
    // present safariViewController 
} 

オープン/クローズのアニメーションは右側からです。

Facebook SDKを使用してFacebookにログインすると、SafariViewControllerも使用されているように見え、下からアニメーション化されます。

これを達成する方法はありますか?

答えて

1

FacebookSDKの動作はちょっと難しいです:SafariVCを別のView Controller(containerVC)に追加し、SafariVCではなくcontainerVCを表示します。私はこの動作を実装例書く

(マスクを自動サイズ変更についてはよく分からないが、あなたは、自動レイアウトを使用する必要があるが、それはあなた次第ですすることができる):

let containerVC = UIViewController() 
    let url = URL(string: "https://yandex.ru")! 
    let safariVC = SFSafariViewController(url: url) 
    containerVC.addChildViewController(safariVC) 
    safariVC.view.autoresizingMask = [ .flexibleWidth, .flexibleHeight ] 
    safariVC.view.frame = containerVC.view.frame 
    containerVC.view.addSubview(safariVC.view) 
    safariVC.didMove(toParentViewController: containerVC) 
    self.present(containerVC, animated: true, completion: nil) 
+0

はどうもありがとうございました。私は明日これを打ち明けて、報告する。別のスタック質問がありますが、これは同じ方法ですが、viewControllerの代わりに、トップバーを非表示にしてUINavバーに追加しました。これは最初はうまくいくようですが、私が気付いたのは、Safari VCを早く連続して開いて閉じると、ボタン/インターフェイスのない白い画面が得られることに気付きました。私はそれを正常に追加するだけでは複製できません。私はVCと一緒にお試しください。もう一度ありがとう – crashoverride777

+0

あなたの場合に役立ちましたか? –

+0

遅く返事を申し訳ありません。私は休暇中で、今日までは時間がなかった。あなたの答えは素晴らしく、UIのない​​空白のサファリページがあるという問題を再現することもできません。助けてくれてありがとう。 – crashoverride777