Application will enter background -> go to root view menu
ios, iphone, objective-c
Solution
i think you try `NSNotificationCenter` like this:
inside `applicationDidEnterBackground` and `applicationWillEnterForeground` put this
[[NSNotificationCenter defaultCenter] postNotificationName:@"popToRoot" object:nil];
and in your `rootViewController's` `viewDidLoad` (that always appears on app launch) add this:
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(popToRootViewControllerAnimated) name:@"popToRoot" object:nil];
Then create a method in your `rootViewController`:
- (void)popToRootViewControllerAnimated
{
[self.navigationController popToRootViewControllerAnimated:YES];
}
Whenever the application will start first time, `NSNotificationCenter` will initialize for name `popToRoot` and prepare a method `popToRootViewControllerAnimated` for this.
And when application will go to background, `NSNotificationCenter` will pass a massage `@"popToRoot"` to `rootViewController's popToRootViewControllerAnimated` method and `viewcontroller` will pop to `rootview`
Problem
I am developing an application which has about 8 views and use navigation controller to navigate through. The first view is a main menu. What i want is (of each view) to pop to the main view if the user press the home button (App did enter background). I know the AppDelegate methods `applicationDidEnterBackground` and `applicationWillEnterForeground`. And i know the method `popToRootViewControllerAnimated` called from the navigation controller. I have tried to use popToRootViewControllerAnimated in applicationDidEnterBackground. Like: ``` [self.window.rootViewController.navigationController popToRootViewControllerAnimated:YES]; ``` But this does not work. Can you please let me know what is the best option for this job?