Ich habe das gleiche Problem. Ich habe versucht, mit viewDisDisappear, aber ich habe nicht die Funktion aufgerufen :( (weiß nicht, warum, vielleicht weil alle meine VC ist UITableViewController). Der Vorschlag von Alex funktioniert gut, aber er schlägt fehl, wenn Ihr Navigationscontroller unter der Registerkarte More angezeigt wird. In diesem Fall haben alle VCs deiner Navigationscontroller den navigationController als UIMoreNavigationController, nicht den Navigationscontroller, den du subclassed hast, so dass du nicht von der nav benachrichtigt wirst, wenn ein VC im Begriff ist zu poppen.
Finaly, löste ich das Problem mit einer Kategorie von UINavigationController, einfach umschreiben - (UIViewController *)popViewControllerAnimated:(BOOL)animated
- (UIViewController *)popViewControllerAnimated:(BOOL)animated{
NSLog(@"UINavigationController(Magic)");
UIViewController *vc = self.topViewController;
if ([vc respondsToSelector:@selector(viewControllerWillBePopped)]) {
[vc performSelector:@selector(viewControllerWillBePopped)];
}
NSArray *vcs = self.viewControllers;
UIViewController *vcc = [vcs objectAtIndex:[vcs count] - 2];
[self popToViewController:vcc animated:YES];
return vcc;}
Das funktioniert bei mir gut :D