So, under low memory, my root view is unloaded. That's expected and accounted for. However, how do I deal with modal/pushed view controllers who need to be popped, since they reference the main navigationController? I have a custom Done button in a pushed view controller, which calls [self.navigationController popViewControllerAnimated:YES]. If the root view has been unloaded, this gives a bad access error. Is there a better way to do this?
My setup is AppDelegate has a NavigationController this NavigationController has a view controller MainViewController
//MainViewController.m - (IBAction)showAnotherController:(id)sender { AnotherViewController * anotherViewController; anotherViewController = [[AnotherViewController alloc] initWithNibName:@"AnotherView" bundle:nil]; [self.navigationController pushViewController:anotherViewController animated:YES]; [anotherViewController release]; } //...Here I can simulate a memory warning to force unloading of MainViewController's view //in AnotherViewController.m, called from a custom toolbar item - (IBAction)done:(id)sender { [self.navigationController popViewControllerAnimated:YES]; // bad access here, looks like self.navigationController is no longer available. Am I doing this wrong? }