我认为你可以像这样使用NSNotificationCenter
:
在applicationDidEnterBackground
和applicationWillEnterForeground
方法内添加以下代码:
[[NSNotificationCenter defaultCenter] postNotificationName:@"popToRoot" object:nil]
在您的rootViewController
的viewDidLoad
方法中(这个方法总是在应用程序启动时出现),添加以下内容:
并将此代码复制到您的rootViewController
的viewDidLoad
方法中(该方法总是在应用程序启动时出现):
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(popToRootViewControllerAnimated) name:@"popToRoot" object:nil]
然后在您的rootViewController
中创建一个方法:
- (void)popToRootViewControllerAnimated
{
[self.navigationController popToRootViewControllerAnimated:YES];
}
每当应用程序第一次启动时,NSNotificationCenter
将为名称为 popToRoot
的通知进行初始化,并为此准备一个方法 popToRootViewControllerAnimated
。
当应用程序进入后台时,NSNotificationCenter
将向 rootViewController's popToRootViewControllerAnimated
方法传递消息 @"popToRoot"
,并且 viewcontroller
将弹出到 rootview
。
...ControllerAnimated:NO]
会起作用吗? - James Webster