Pop to root view controller in app delegate

2020-07-17 05:45发布

I have an app that someone logs into and if they launch it after sending it to the background for more than 10 minutes I pop up a nice little "session expired" alert and send them to the root view controller (login page).

Everything works great but I don't know how to pop to the root view controller in my navigation controller stack from the app delegate's applicationWillEnterForeground: method.

I tried saving off the navigationController onto an appDelegate variable but I wonder if the app is in the background for several days, if iOS starts freeing some variables, as I get an error in this method at that time.

Any ideas?

2条回答
虎瘦雄心在
2楼-- · 2020-07-17 06:04

If the navigation controller is your application's root view controller, then you can get it like:

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

where self is in the app delegate

查看更多
欢心
3楼-- · 2020-07-17 06:25

Just to make things more clear one can use following to pop to rootviewcontroller from AppDelegate

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

Here self is app delegate.

查看更多
登录 后发表回答