2012-06-27 37 views
1

如果應用程序先前在後臺,當調用applicationDidBecomeActive時,我期望故事板的初始視圖控制器成爲當前控制器。我期望我的故事板的初始視圖控制器成爲當前控制器

我用:

- (void)applicationDidBecomeActive:(UIApplication *)application 
{ 
    [self.window makeKeyAndVisible]; 
} 

當我重新啓動應用程序,loginAcitonrootViewController仍然可以調用,但不能出示下一個控制器。沒有錯誤沒有發生。

- (IBAction)loginAciton:(id)sender 
{ 
    id controller = [self.storyboard instantiateViewControllerWithIdentifier:@"Navigation"]; 
    [self presentModalViewController:controller animated:YES]; 
} 

爲什麼?

PS。我的rootViewController不是UINavigationController。

感謝您的回覆。

+0

什麼是返回'[self.storyboard instantiateViewControllerWithIdentifier:@「導航」]'? –

+0

你可以使用'-performSegueWithIdentifier:sender:'來代替嗎? –

+1

返回UINavigationController。 '-performSegueWithIdentifier:sender:'和'presentModalViewController'之間的任何區別? – Carina

回答

3

一個更好的方法是添加UIApplicationExitsOnSuspendInfo.plist並將其設置爲YES

0

我明白了!

,如果你想你的故事板,每次爲當前控制器的初始視圖控制器,你可以嘗試:

- (void)applicationDidEnterBackground:(UIApplication *)application 
{ 
    exit(EXIT_SUCCESS); 
} 
+0

如果你調用exit他們可能會拒絕你的應用程序(),mavrick3的建議是有點清潔 – Olaf

+0

謝謝您的幫助。 – Carina

0

您可以使用通知過,把這個代碼applicationDidBecomeActive:

[[NSNotificationCenter defaultCenter] postNotificationName:@"appActivated" object:nil]; 

,並在當前視圖中添加的觀察者......

[[NSNotificationCenter defaultCenter] addObserver:self 
            selector:@selector(updateView:)   
             name:@"appActivated" 
             object:nil]; 

,不要忘記刪除的觀察者dealloc:您目前的看法...

[[NSNotificationCenter defaultCenter] removeObserver:self]; 

可能這會幫助你..

相關問題