当以编程方式设置根视图控制器时,导航和标签栏丢失
Posted
技术标签:
【中文标题】当以编程方式设置根视图控制器时,导航和标签栏丢失【英文标题】:When set root view controller programmatically navigation and tab bar missing 【发布时间】:2015-02-03 08:40:10 【问题描述】:应用委托代码:
let storyboard = UIStoryboard(name: "Main", bundle: nil)
let myViewController = storyboard.instantiateViewControllerWithIdentifier("MyViewController") as UIViewController
if self.window != nil
self.window!.rootViewController = myViewController
当我在没有此代码的情况下加载应用程序时,一切都很好。 但是,如果我运行此代码视图已加载但缺少导航和标签栏。 我在这里错过了什么? 我正在使用情节提要。
【问题讨论】:
【参考方案1】:这是有效的代码:
func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool
let storyboard = UIStoryboard(name: "Main", bundle: nil)
let mainRootController = storyboard.instantiateViewControllerWithIdentifier("MainViewController") as UIViewController
if self.window != nil
let navigationController:UINavigationController = storyboard.instantiateInitialViewController() as UINavigationController
navigationController.viewControllers = [mainRootController]
self.window!.rootViewController = navigationController
return true
【讨论】:
【参考方案2】:在添加根视图控制器之前,您必须为导航控制器分配内存,然后导航控制器作为根视图控制器。
UINavigationController *navigationController=[[UINavigationController alloc] initWithRootViewController:yourViewController];
[[UINavigationBar appearance]setTintColor:[UIColor whiteColor]];
self.window.rootViewController = navigationController;
【讨论】:
快速编程语言以上是关于当以编程方式设置根视图控制器时,导航和标签栏丢失的主要内容,如果未能解决你的问题,请参考以下文章
以编程方式创建 UINavigationController
带有 MVVM Light 的标签栏控制器导航 Xamarin