以编程方式推送时导航栏消失

时间:2015-05-31 23:07:42

标签: ios swift uinavigationcontroller

我已经在应用程序上工作了一段时间,它从AppDelegate推送了一个视图控制器。当它被推送时,以前在视图控制器上的导航栏消失。现在它是一个静态导航栏(不是导航控制器的一部分),但它以前仍然没有用。我究竟做错了什么?有某种解决方法吗?

这是我用来推送它的AppDelegate中的代码:

var storyboard = UIStoryboard(name: "Main", bundle: nil)
var PostView: AnyObject! = storyboard.instantiateViewControllerWithIdentifier("NewView")

var rootViewController = self.window!.rootViewController as! UINavigationController
rootViewController.pushViewController(PostView as! UIViewController, animated: true)

pushViewController是我想要推动的。

3 个答案:

答案 0 :(得分:9)

在您尝试推送的视图控制器上,在viewDidLoad方法上,尝试强制导航栏不被隐藏

self.navigationController?.setNavigationBarHidden(false, animated: false)

如果这有帮助,请检查故事板上的视图控制器,如果您没有强制视图控制器隐藏导航栏

希望有帮助:)

答案 1 :(得分:2)

试试这个:

var storyboard = UIStoryboard(name: "NewStoryBoard", bundle: nil)

let vc = storyboard.instantiateViewController(withIdentifier: "NewView") as! UIViewController

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

答案 2 :(得分:0)

rootViewControllerUINavigationController。任何查看控制器的方法都会使用UINavigationBar中定义的UINavigationController

如果您不想要UINavigationBar附带的“自动”UINavigationController,只需将其他类型的视图控制器设置为初始视图控制器(或者将视图控制器设置为初始视图控制器)。