The second most common method of organizing controllers within an application, the first being the Navigation Controller.
A tab bar controller adds a set of buttons to the bottom of the screen, each which represent a view controller. The user can switch between controllers by pressing the buttons.
It is common to nest UINavigation controllers within tab bar controllers to allow the user to drill down a nav stack for each tab. In this case, each tab of the tab bar controller maintains a different nav stack and keeps them completely isolated from each other.
Implement a tab bar controller in code or in InterfaceBuilder.
A TabBarController has no limits on the number of controllers it may supervise.