I have two view controllers to present modal, one on top of another, both are embedded in navigation view controller
In ChatListViewController: Level 1
- (IBAction)ui_mass_message:(id)sender {
UIViewController *viewController = (UIViewController *)[CocoaHelper viewControllerWithIdentifier:VC_MASS_MESSAGE];
UINavigationController *navController = [[UINavigationController alloc] initWithRootViewController:viewController];
[self presentViewController:navController animated:YES completion:nil];
}
In MassMessageViewController: Level 2
SelectContactViewController *viewController = (SelectContactViewController *)[CocoaHelper viewControllerWithIdentifier:VC_CONTACT_SELECT];
[viewController setupWithType:SelectContactTypesMassMessage preSelectedContacts:self.contacts];
UINavigationController *navController = [[UINavigationController alloc] initWithRootViewController:viewController];
[self presentViewController:navController animated:YES completion:nil];
In SelectContactViewController: Level 3 When I dismiss, I need to pass a parameter to Level 2 (MassMessageViewController), and go 1 level down:
//TODO: controller is nil
//I have tried self.navigationController.presentingViewController as well
MassMessageViewController *controller = (MassMessageViewController *)self.presentingViewController;
[controller refreshContacts:self.selectedContacts];
[self.navigationController dismissViewControllerAnimated:YES completion:nil];