0

私の SpriteKit ゲームでは、すべて横向きで、SafariViewController を表示しています。

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 も使用しているように見え、下から出入りしてアニメーション化されます。

これも達成できる方法はありますか?

4

1 に答える 1

1

FacebookSDK の動作は少しトリッキーです。SafariVC を別のビュー コントローラー (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)
于 2016-08-08T22:49:06.013 に答える