I think if you need to dismiss more than one view controller at once, perhaps presenting them on top of each other is the wrong design. A modal presentation is usually used to temporarily switch to another action and the user will usually return back to where they came from (only one view controller is dismissed). Maybe the user would then dismiss again, but each dismissal would be caused by the user, and only one view controller would be dismissed each time.

If you need to go back several view controllers at once, perhaps the first view controller you present should be a navigation controller and then the other view controller(s) should be pushed on the stack instead of being further presentations. Or maybe you could dismiss one view controller and use the completion block to dismiss the next one. That will animate correctly, but probably be quite slow and confusing for the user.

If you really must present multiple view controllers and do not like the appearance when they are dismissed, you will have to use a full screen presentaion so that you don’t see the card-like appearance.

Written by

Independent and freelance software developer for iPhone, iPad and Mac

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store