2015-04-10 3 views
0

Я написал следующий код, который представляет собой второй контроллер просмотра всякий раз, когда пользователь нажимает ссылку на веб-страницу. Однако всякий раз, когда я представляю его, второй контроллер просмотра скрывает панель навигации.Представление второго контроллера представления без потери навигационной панели

Я хотел бы иметь возможность уволить недавно представленный вид, разрешив пользователю нажать «назад» на панели навигации. Как я могу это сделать?

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

ответ

1

Вы должны 'проталкивания' контроллера представления, с чем-то вроде:

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

Вы должны нажать на новый контроллер представления на навигационном стек, вместо того, чтобы представить его как модальный контроллер представления. Заменить

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

с

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

Я принимаю обоих. У Кобры был самый правильный синтаксис, ваш был наиболее информативным. Положитесь на обоих, спасибо. – mm24

Смежные вопросы