2012-06-27 30 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]; 

可能这会帮助你..

相关问题