在app委托中弹出到根视图控制器

时间:2012-09-27 15:48:40

标签: iphone objective-c ios xcode

我有一个有人登录的应用程序,如果他们在将其发送到后台超过10分钟后启动它,我会弹出一个不错的小“会话过期”警报并将它们发送到根视图控制器(登录页面) 。

一切都很好但我不知道如何从app delegate的applicationWillEnterForeground:方法弹出导航控制器堆栈中的根视图控制器。

我尝试将navigationController保存到appDelegate变量上,但我想知道应用程序是否在后台运行了好几天,如果iOS开始释放一些变量,因为当时我在这个方法中遇到错误。

有什么想法吗?

2 个答案:

答案 0 :(得分:10)

如果导航控制器是您的应用程序的根视图控制器,那么您可以得到它:

UINavigationController *myNavCon = (UINavigationController*)self.window.rootViewController;

其中self位于app delegate

答案 1 :(得分:3)

为了使事情更清楚,可以使用以下命令从AppDelegate弹出到rootviewcontroller

UINavigationController *navigationController = (UINavigationController  *)self.window.rootViewController;
[navigationController popToRootViewControllerAnimated:YES];

这里的自我是app delegate。