4

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

一切正常,但我不知道如何从应用程序委托的 applicationWillEnterForeground: 方法弹出到导航控制器堆栈中的根视图控制器。

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

有任何想法吗?

4

2 回答 2

10

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

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

self应用程序委托在哪里

于 2012-09-27T15:51:31.617 回答
3

只是为了让事情更清楚,可以使用以下从 AppDelegate 弹出到 rootviewcontroller

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

这里 self 是应用程序委托。

于 2014-04-12T06:58:57.280 回答