I wrote a category for UIViewControllers that seems to work:
- (void) popToInitialViewController { UIViewController *vc; if (self.navigationController != nil) { vc = self.navigationController; [self.navigationController popToRootViewControllerAnimated:NO]; [vc popToInitialViewController]; } else if (self.tabBarController != nil) { vc = self.tabBarController; [vc popToInitialViewController]; } else if (self.presentingViewController != nil) { vc = self; while (vc.presentingViewController != nil) vc = vc.presentingViewController; [vc dismissModalViewControllerAnimated:NO]; [vc popToInitialViewController]; } }
Comments appreciated :)
source share