The UINavigationController is a Cocoa Touch class which manages a stack of UIView controllers (and their respective views). The nav controller is separate from the UINavigationBar (the bar that appears at the top of a view); a navigation controller may exist without a navigation bar.
Views are managed by pushing/popping them on/off the nav controller's view stack. When you push an item, the current view slides off screen to the left, and the new view slides over from the right.
If you're using storyboards, the storyboard segues manage the view transitions for you - you don't have to write any code at all for those.
If you're not using storyboards, and instead have separate Interface Builder nib (xib) files for each of your views, you'll have to add code to push/pop views manually.
- Add a Button to the Navigation Bar
- Set the Navigation Bar Title
- Set the Navigation Bar's Background Image
- Create a Navigation-based app with Storyboards
- Programmatically push/pop controllers off the navigation stack