在不丢失导航栏的情况下呈现第二视图控制器

时间:2015-04-10 09:45:30

标签: ios objective-c swift navigation wkwebview

我编写了以下代码,只要用户点击网页链接,就会显示第二个视图控制器。但是,无论何时我呈现它,第二个视图控制器都会隐藏导航栏。

我希望能够通过允许用户点击导航栏中的“返回”来关闭新呈现的视图。我怎么能这样做?

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,上面只有一个标签。但是我丢失了导航栏 ..

enter image description here

2 个答案:

答案 0 :(得分:1)

您应该将新视图控制器推送到导航堆栈,而不是将其显示为模态视图控制器。取代

self.presentViewController(vc, animated: true, completion: nil)

self.navigationController.pushViewController(vc, animated: true)

答案 1 :(得分:1)

你需要推动'视图控制器,类似于:

self.navigationController?.pushViewController(vc, animated: true)