如果应用程序以前在后台,当调用applicationDidBecomeActive
时,我希望我的故事板的初始视图控制器成为当前控制器。
我用过:
- (void)applicationDidBecomeActive:(UIApplication *)application
{
[self.window makeKeyAndVisible];
}
当我重新启动应用时,仍会调用loginAciton
内的rootViewController
,但无法显示下一个控制器。没有任何错误发生。
- (IBAction)loginAciton:(id)sender
{
id controller = [self.storyboard instantiateViewControllerWithIdentifier:@"Navigation"];
[self presentModalViewController:controller animated:YES];
}
为什么?
PS。我的rootViewController不是UINavigationController。
感谢您的回复。
答案 0 :(得分:3)
更好的方法是将UIApplicationExitsOnSuspend
添加到Info.plist
并将其设置为YES
。
答案 1 :(得分:0)
我明白了!
如果你想让故事板的初始视图控制器每次都成为当前的控制器,你可以尝试一下:
- (void)applicationDidEnterBackground:(UIApplication *)application
{
exit(EXIT_SUCCESS);
}
答案 2 :(得分:0)
您也可以使用该通知,将此代码放入 applicationDidBecomeActive:
[[NSNotificationCenter defaultCenter] postNotificationName:@"appActivated" object:nil];
并在当前视图中添加观察者...
[[NSNotificationCenter defaultCenter] addObserver:self
selector:@selector(updateView:)
name:@"appActivated"
object:nil];
并且不要忘记删除当前视图的 dealloc:中的观察者...
[[NSNotificationCenter defaultCenter] removeObserver:self];
这可能会对你有所帮助..