我编写了以下代码,只要用户点击网页链接,就会显示第二个视图控制器。但是,无论何时我呈现它,第二个视图控制器都会隐藏导航栏。
我希望能够通过允许用户点击导航栏中的“返回”来关闭新呈现的视图。我怎么能这样做?
func webView(webView: WKWebView, decidePolicyForNavigationAction navigationAction: WKNavigationAction!,
decisionHandler: ((WKNavigationActionPolicy) -> Void)!){
/* Do not allow links to be tapped */
if navigationAction.navigationType == .LinkActivated{
decisionHandler(.Cancel)
let storyboard = UIStoryboard(name: "Main", bundle: nil)
let vc = storyboard.instantiateViewControllerWithIdentifier("helloview") as UIViewController
self.presentViewController(vc, animated: true, completion: nil)
return
}
decisionHandler(.Allow)
}
这就是它的样子。我点击链接然后显示第二个视图。视图是一个简单的UIViewController,上面只有一个标签。但是我丢失了导航栏 ..
答案 0 :(得分:1)
您应该将新视图控制器推送到导航堆栈,而不是将其显示为模态视图控制器。取代
self.presentViewController(vc, animated: true, completion: nil)
与
self.navigationController.pushViewController(vc, animated: true)
答案 1 :(得分:1)
你需要推动'视图控制器,类似于:
self.navigationController?.pushViewController(vc, animated: true)