-->

Pop to root view controller in app delegate

2020-07-17 05:35发布

问题:

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?

回答1:

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



回答2:

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.