以编程方式调用segue时保持导航栏在顶部

时间:2014-11-29 09:24:52

标签: ios swift uinavigationbar

我有一个通过按钮链接到视图的应用程序(嵌入在导航控制器中)

一切正常!我按下按钮,视图显示使用 Segue Show Eg:推送。视图弹出,我看到一个带有我的标题的UINavigationBar和一个要关闭的按钮。

我的问题是..我需要在我的代码中以编程方式再次调用此视图,但是,当我这样做时,视图显示没有任何UINavigation。我认为这样做是因为它不再嵌入UINavigationController中了吗?

对此最好的解决方案是什么?我应该以编程方式创建UINavigationBarController吗?如果是这样,它会如何迅速看待?

先谢谢。

// Code below is triggered from an action (button) on UIAlertController.
// This loads up the "Scan Barcode view" without the UINavigationBar embedded.
let scannerViewController = self.storyboard?.instantiateViewControllerWithIdentifier("ScannerViewController") as ScannerViewController
self.presentViewController(scannerViewController, animated: true, completion: nil)

当我使用界面构建器从另一个按钮(位于其他位置)设置连接时,显示相同的视图。它可以完美地显示扫描条码"扫描条码"嵌入在导航控制器中。

Image of interface builder

使用界面构建器进行链接时(从相机按钮),它可以完美运行。

Image of interface builder again

1 个答案:

答案 0 :(得分:0)

感谢@kpsharp解决方案就是使用

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