10
votes

I have an iPad app and I'm using the storyboard. I'm presenting a modal view, which I wrap in a UINavigationController. It's a modal "Settings" view with it's own navigation.

I have a delegate setup to dismiss the modal view itself with a Done button in the Settings view which works fine, but I need to be able to dismiss it even after it has pushed another view when the user taps a setting.

So, basically a "cancel" button on the right side of the Navigation bar in the pushed views. Instead of having to go back to the first "Settings" view to hit the done button.

I've tried setting up a second delegate for the pushed view without success:

enter image description here

1

1 Answers

38
votes

Just add a bar button item and put this line in its action method:

[self.presentingViewController dismissViewControllerAnimated:YES completion:nil];

The presenting view controller will be the controller that presented the modal, not the navigation controller.