以编程方式推送时导航栏消失
Navigation bar disappearing when pushed programmatically
我开发一个应用程序已经有一段时间了,它从 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
是我要推送的那个。
rootViewController
是 UINavigationController
。您反对的视图控制器将使用 UINavigationController
中定义的 UINavigationBar
。
如果您不想要 UINavigationController
附带的 "automated" UINavigationBar
,只需将其他类型的视图控制器设置为初始视图控制器(或不设置视图控制器作为最初的)。
在您尝试推送的视图控制器上,在 viewDidLoad
方法上,尝试强制不隐藏导航栏
self.navigationController?.setNavigationBarHidden(false, animated: false)
如果这有帮助,如果您没有强制视图控制器隐藏导航栏,请检查故事板上的视图控制器
希望对您有所帮助 :)
试试这个:
var storyboard = UIStoryboard(name: "NewStoryBoard", bundle: nil)
let vc = storyboard.instantiateViewController(withIdentifier: "NewView") as! UIViewController
self.navigationController?.pushViewController(vc, animated: true)
我开发一个应用程序已经有一段时间了,它从 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
是我要推送的那个。
rootViewController
是 UINavigationController
。您反对的视图控制器将使用 UINavigationController
中定义的 UINavigationBar
。
如果您不想要 UINavigationController
附带的 "automated" UINavigationBar
,只需将其他类型的视图控制器设置为初始视图控制器(或不设置视图控制器作为最初的)。
在您尝试推送的视图控制器上,在 viewDidLoad
方法上,尝试强制不隐藏导航栏
self.navigationController?.setNavigationBarHidden(false, animated: false)
如果这有帮助,如果您没有强制视图控制器隐藏导航栏,请检查故事板上的视图控制器
希望对您有所帮助 :)
试试这个:
var storyboard = UIStoryboard(name: "NewStoryBoard", bundle: nil)
let vc = storyboard.instantiateViewController(withIdentifier: "NewView") as! UIViewController
self.navigationController?.pushViewController(vc, animated: true)