You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
codepath-wiki-review[bot] edited this page Jul 30, 2026
·
5 revisions
Overview
There are three basic types of Navigation mechanisms in iOS:
Push Navigation
Modal Navigation
Tab Navigation
Push Navigation
A push Segue is adding another VC to the navigation stack. This assumes that VC that originates the push is part of the same navigation controller that the VC that is being added to the stack belongs to. Memory management is not an issue with navigation controllers and a deep stack. As long as you are taking care of objects you might be passing from one VC to another, the compiler will take care of the navigation stack. See the image for a visual indication:
Modal Navigation
A modal Segue is just one VC presenting another VC modally. The VCs don't have to be part of a navigation controller and the VC being presented modally is generally considered to be a "child" of the presenting (parent) VC. The modally presented VC is usually sans any navigation bars or tab bars. The presenting VC is also responsible for dismissing the modal VC it created and presented.
Tab Bar Navigation
Tab bar controllers are simple to use navigation controllers. They are generally used, when there are different logical flows in your app and you want to switch from one controller to another.