UINavigationBar
1. The UINavigationBar class implements a control for navigating hierarchical content.
2. You can modify the appearance of the bar using the barStyle, tintColor, and translucent properties.
Adding Content to a Navigation Bar
1. Unlike other types of views, you do not add subviews to a navigation bar directly. Instead, you use a navigation item to specify what buttons or custom views you want displayed. A navigation item has properties for specifying views on the left, right, and center of the navigation bar and for specifying a custom prompt string.
2. A navigation bar manages a stack of UINavigationItem objects. The topmost item in the stack represents the navigation item whose contents are currently displayed by the navigation bar. You push new navigation items onto the stack using the pushNavigationItem:animated: method and pop items off the stack using the popNavigationItemAnimated: method.
3. In addition to pushing and popping items, you can also set the contents of the stack directly using either the items property or the setItems:animated: method.
Using With a Navigation Controller
1. If you use a navigation controller to manage the navigation between different screens of content, the navigation controller creates the navigation bar automatically and pushes and pops navigation items when appropriate.
2. Specifically, it is alright to modify the barStyle, tintColor, and translucent properties of this class, but you must never directly change UIView-level properties such as the frame, bounds, alpha, or hidden properties directly. In addition, you should let the navigation controller manage the stack of navigation items and not attempt to modify these items yourself.
3. A navigation controller automatically assigns itself as the delegate of its navigation bar object.
UINavigationItem
1. The UINavigationItem class encapsulates information about a navigation item pushed on a UINavigationBar object’s stack. A navigation bar is a control used to navigate hierarchical content. A UINavigationItem specifies what is displayed on the navigation bar when it is the top item and also how it is represented when it is the back item.
2. Use the initWithTitle: method to create a navigation item specifying the item’s title. The item cannot be represented on the navigation bar without a title. Use the backBarButtonItem property if you want to use a different title when this item is the back item. The backBarButtonItem property is displayed as the back button unless a custom left view is specified.
3. The navigation bar displays a back button on the left and the title in the center by default. You can change this behavior by specifying either a custom left, center, or right view. Use the setLeftBarButtonItem:animated: and setRightBarButtonItem:animated: methods to change the left and right views; you can specify that the change be animated. Use the titleView method to change the center view to a custom view.
UIBarItem
UIBarItem is an abstract superclass for items added to a bar that appears at the bottom of the screen. Items on a bar behave in a way similar to buttons. They have a title, image, action, and target. You can also enable and disable an item on a bar.
UIBarButtonItem
A bar button item is a button specialized for placement on a UIToolbar or UINavigationBar object. It inherits basic button behavior from its abstract superclass, UIBarItem. The UIBarButtonItem defines additional initialization methods and properties for use on toolbars and navigation bars.
UITabBarItem
The UITabBarItem class implements an item on a tab bar, instances of the UITabBar class. A tab bar operates strictly in radio mode, where one item is selected at a time—tapping a tab bar item toggles the view above the tab bar. You can also specify a badge value on the tab bar item for adding additional visual information—for example, the Phone application uses a badge on the item to show the number of new messages. This class also provides a number of system defaults for creating items.
Use the initWithTabBarSystemItem:tag: method to create one of the system items. Use the initWithTitle:image:tag:method to create a custom item with the specified title and image.