2奇怪的事情發生了:如何推SFSafariViewController?當我試圖把Safari瀏覽器的ViewController
及其與完成按鈕地址欄中放置我下面的導航欄;
委託方法safariViewControllerDidFinish:當我按下後退按鈕時不會被調用。
我不認爲蘋果會批准這個behavoir的,所以:
有沒有辦法來推動Safari瀏覽器的ViewController沒有這些問題呢?
2奇怪的事情發生了:如何推SFSafariViewController?當我試圖把Safari瀏覽器的ViewController
及其與完成按鈕地址欄中放置我下面的導航欄;
委託方法safariViewControllerDidFinish:當我按下後退按鈕時不會被調用。
我不認爲蘋果會批准這個behavoir的,所以:
有沒有辦法來推動Safari瀏覽器的ViewController沒有這些問題呢?
時,不要推SFSafariViewController與pushViewController:animated:
方法,而是使用了presentViewController:animated:completion:
方法。
Safari視圖控制器將會呈現一個標準的推動動畫。
太奇怪了。 – beebcon
除了rckoenes評論唯一的選擇我看到的是隱藏的導航欄呈現SFSafariViewController
import UIKit
import SafariServices
class ViewController: UIViewController {
@IBAction func openBrowser(sender: AnyObject) {
let safariViewController = SFSafariViewController(URL: NSURL(string: "http://your.url")!)
safariViewController.delegate = self
// hide navigation bar and present safari view controller
navigationController?.navigationBarHidden = true
navigationController?.pushViewController(safariViewController, animated: true)
}
}
extension ViewController: SFSafariViewControllerDelegate {
func safariViewControllerDidFinish(controller: SFSafariViewController) {
// pop safari view controller and display navigation bar again
navigationController?.popViewControllerAnimated(true)
navigationController?.navigationBarHidden = false
}
}
在記錄中沒有說明,但您只能以模態方式顯示視圖。您不應該推入導航控制器。 – rckoenes