2015-04-04 46 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; 
相關問題