我可以将rootViewController更改为ViewController内的其他Storyboard视图吗?

时间:2015-04-04 18:24:40

标签: ios objective-c storyboard uistoryboard viewcontroller

我有一些逻辑需要在按下view后显示不同的button。以下代码来自appDelegate,但不适用于ViewController实施。有没有办法从当前的ViewController实现中更改视图控制器故事板?

self.window.rootViewController =
(UIViewController *)[[UIStoryboard storyboardWithName:@"Main" bundle: nil] instantiateViewControllerWithIdentifier:@"homeView"];

2 个答案:

答案 0 :(得分:1)

当控制器的视图当前在屏幕上时,它具有指向其窗口的非零窗口属性。此外,如果具有此代码的控制器是在同一个故事板中制作的,则可以使用self.storyboard而不是从其名称中获取故事板。

    self.view.window.rootViewController = [self.storyboard instantiateViewControllerWithIdentifier:@"homeView"];

答案 1 :(得分:1)

您可以从window实例获取UIApplication

UIApplication *application = [UIApplication sharedApplication];
UIViewController *newRoot = [self.storyboard instantiateViewControllerWithIdentifier:@"homeView"];
[(AppDelegate *)application.delegate window].rootViewController = newRoot;