Heisenberg
Heisenberg

Reputation: 1319

ios: how to dismiss a modal view controller and then pop a pushed view controller

I have a view controller B that is pushed onto the navigation stack by root view controller A and this view controller B needs to display an alternative view if its model is in a certain state so it is modally presenting another view controller C. When I dismiss view controller C I would also like to pop view controller B if that is also on the nav stack. I would like to do it in such a way that there is only 1 transition.

Any ideas?

Upvotes: 13

Views: 7536

Answers (1)

rdelmar
rdelmar

Reputation: 104082

In the scenario you posted, the presenting view controller for view controller C will actually be the navigation controller, so you can ask it to pop off B, and then dismiss yourself. This code is in view controller C:

-(IBAction)goBackToA:(id)sender {
    [(UINavigationController *)self.presentingViewController  popViewControllerAnimated:NO];
    [self dismissViewControllerAnimated:YES completion:nil];
}

If you are using a storyboard, you can do this same thing, jumping directly back to A with an unwind segue.

Upvotes: 20

Related Questions