因此,我有一个显示页面的Web视图,并希望在包含Web视图的新视图控制器中打开任何链接(如twitter和Facebook do)。
我已经找到了如何获取点击链接的网址:
func webView(webView: UIWebView, shouldStartLoadWithRequest request: NSURLRequest, navigationType: UIWebViewNavigationType) -> Bool {
let youClicked = request.URL!
print(youClicked)
return true
}
但是还没有设法弄清楚如何将这个值传递到另一个页面上的Web视图中,并将该视图控制器模态地呈现为一个popover。
有什么想法吗?
答案 0 :(得分:4)
在Apple Developer Documentation
查看 SFSafariViewController为了实施解决方案,您必须导入 SafariServices ,之后......
声明Safari视图控制器
让目的地:NSURL = NSURL(字符串:" http://desappstre.com")!
让safari:SFSafariViewController = SFSafariViewController(URL:destination)
从当前视图控制器查询到步骤1中声明的safari视图控制器
self.presentViewController(safari,animated:true,completion:nil)
如果您需要控制HTTP事件,可以使用目标视图控制器中的SFSafariViewControllerDelegate
。
答案 1 :(得分:2)
没有开箱即用的组件可以满足您的需求。相反,你必须创建自己的组件:
创建一个新的UIViewController并在其中放置一个WKWebView(可以通过Interface Builder或Code归档 - 我通常更喜欢Interface Builder)。此外,为WKWebView
创建控制器 - 设置URL并显示它
// Create the controller
let controller = storyboard.instantiateViewControllerWithIdentifier("MyCustomWebViewController")
//start loading the URL
controller.webView.loadRequest(request)
// present it
presentViewController(viewController, animated: true, completion: nil)