我尝试使用:
self.navigationController?.setViewControllers([anotherNavController], animated: true)
但是,我得到了NSException
。我假设您不能UINavigationController
在另一个内,因为setViewControllers()
与普通的视图控制器一起使用效果很好。
我需要做的是关闭当前的navigationController并显示另一个NavigationController,以便在关闭新的navigationController时,将来不再显示旧的navigationController。
我正在使用使事情复杂化的PageMenu。
为什么需要替换整个导航控制器的示例:
此代码初始化ViewDidAppear中的PageMenu:
// Initialize scroll menu
pageMenu = CAPSPageMenu(viewControllers: controllerArray, frame: CGRectMake(0.0, 0.0, self.view.frame.width, self.view.frame.height), pageMenuOptions: parameters)
self.addChildViewController(pageMenu!)
self.view.addSubview(pageMenu!.view)
pageMenu!.didMoveToParentViewController(self)
如果要设置没有StoryBoard的PageMenu,则需要rootViewController
在AppDelegate中实例化。这应该摆脱了从默认设置切换navigationController
到您自己的设置的麻烦。
var window: UIWindow?
func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool {
self.window = UIWindow(frame: UIScreen.mainScreen().bounds)
self.window?.rootViewController = YourViewController(nibName: "YourViewController", bundle: nil)
self.window?.makeKeyAndVisible()
return true
}
有关设置没有StoryBoard的PageMenu的其他帮助,请在此处查看演示代码。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句