1、navigationController 通过维护一个栈,来实现不同具有从属(父子)关系的视图的切换
它不属于控件,它继承于viewController,它是一个集合了navigation Bar, navigation View等的控制器。
UINavgationBar是通过维护UINavgationItem对象的对象栈来实现管理具有层级关系的视图内容。
navigationbar上的Item如 leftitem,rightitem,tittle是由当前的视图控制器控制的,即Item是由当前视图控制器的navigationItem控制的
- (void)pushNavigationItem:(UINavigationItem *)item animated:(BOOL)animated
- (UINavigationItem *)popNavigationItemAnimated:(BOOL)animated
- (void)setItems:(NSArray *)items animated:(BOOL)animated
UINavgationBar的items属性保存了所有的item,为数组类型。
UINavgationBar的topItem指定了当前navgation bar显示的内容,topItem为栈顶元素,假如当前navgation bar维护了n个items,那么topItem的索引为n-1
UINavgationBar的backItem保存了topItem的下一个item,即索引为n-2的item。如果当前只有一个item,那么该属性为nil,而不是与topItem指向相同的item
关于UINavgationItem:
UINavgationItem提供了titleView属性,来让我们更加灵活的定制UINavgationBar中间显示内容,而不仅限于显示普通的文本标题