This is an old revision of the document!
UINavigationController are used when you want to have some sort of hierarchal representation of your data (ie drill down). They work using a stack of UIViewController subclasses. Every time you “drill down”, you simply add another view controller to the stack. Then, the “back” logic is simply a matter of popping view controllers off of a stack.
At the bottom of the stack, there is the rootViewController which get set during initialization and can never be popped off. At the top of the stack, is the current view controller who’s view is being displayed to the user.
UINavigationController manages views by arranging them inside a stack. The top most view in the stack is the one which is visible. The RootView, which is the first view in the stack does not have a back button whereas all the other views either have a back button or the title of the previous view in the stack in the place of the back button.