2015-04-04 47 views
0

我有一些逻辑,需要不同的view出现一旦button被按下。此代码的作品来自appDelegate,但不在我的ViewController实现中。有没有办法从当前的ViewController执行改变视图控制器故事板?我能否将rootViewController更改为ViewController中的其他故事板视图?

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

回答

1

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

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

这两个答案都是有效的,但是这个人是更简洁。 – 2015-04-04 19:59:25

1

您可以从UIApplication实例得到window

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