【问题标题】:Presenting second view controller without loosing navigation bar在不丢失导航栏的情况下呈现第二个视图控制器
【发布时间】:2015-04-10 09:45:30
【问题描述】:

我编写了以下代码,当用户单击网页链接时,它会显示第二个视图控制器。但是,每当我展示它时,第二个视图控制器都会隐藏导航栏。

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

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

【问题讨论】:

    标签: ios objective-c swift navigation wkwebview


    【解决方案1】:

    您需要“推动”视图控制器,例如:

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

    【讨论】:

      【解决方案2】:

      您应该将新的视图控制器推送到导航堆栈上,而不是将其呈现为模态视图控制器。替换

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

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

      【讨论】:

      • 我都会接受。 Cobra 的语法最正确,你的语法最丰富。对两者都投赞成票,谢谢。
      猜你喜欢
      • 1970-01-01
      • 2020-05-30
      • 2016-10-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-01-03
      相关资源
      最近更新 更多