我有一个带有导航控制器和默认根视图控制器的程序。如果我不进行任何编程操作,应用程序启动并且根视图控制器按照下面的故事板所示按照我预期工作:
我的问题是,通过合并可选的开始视图控制器,我的要求是:在我的AppDelegate(didFinishLaunchingWithOptions)中,我想要像这样的代码:
UIViewController *viewController = [storyboard instantiateViewControllerWithIdentifier:@"OptionalStartViewController"];
self.window.rootViewController = viewController;
[self.window makeKeyAndVisible];
首先展示Optional Start ViewController。然后,当用户完成了Optional ViewController的操作后,可以展示RootViewController。
所以,在Optional Start ViewController中,我添加了以下代码来显示Root View Controller:
UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"Main" bundle: nil];
UIViewController *viewController = [storyboard instantiateViewControllerWithIdentifier:@"RootViewController"];
[self appDelegate].window.rootViewController = viewController;
[[self appDelegate].window makeKeyAndVisible];
除了RootViewController,其他都正常,当显示时,它没有预期的导航控件(即在没有导航控件的情况下显示视图)。
我还尝试了下面的代码(使用UINavigationController而不是ViewController),但结果相同...
UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"Main" bundle: nil];
UINavigationController *viewController = [storyboard instantiateViewControllerWithIdentifier:@"HomeViewController"];
[self appDelegate].window.rootViewController = viewController;
[[self appDelegate].window makeKeyAndVisible];
还有一个小问题......可能会有多个可选的起始视图控制器。
有什么想法吗?
UINavigationController
的标识符代替UIViewController
(根视图控制器)。 - n00bProgrammer