NavigationController

UINavigationController以栈的形式保存子控制器
@property(nonatomic,copy) NSArray *viewControllers;
@property(nonatomic,readonly) NSArray *childViewControllers;

使用push方法能将某个控制器压入栈
- (void)pushViewController:(UIViewController *)viewController animated:(BOOL)animated;

使用pop方法可以移除控制器
将栈顶的控制器移除
- (UIViewController *)popViewControllerAnimated:(BOOL)animated;
回到指定的子控制器
- (NSArray *)popToViewController:(UIViewController *)viewController animated:(BOOL)animated;
回到根控制器(栈底控制器)
- (NSArray *)popToRootViewControllerAnimated:(BOOL)animated;
  1. 导航控制器永远显示的是栈顶控制器的view

  2. 导航控制器中做界面之间的跳转必须拿到导航控制器

  3. 调用pop方法并不会马上销毁当前控制器

  4. popToViewController使用注意点,传入进去的控制器必须是导航控制器栈里面的控制器

  5. 导航条的内容由栈顶控制器决定,一个导航控制器只有一个导航条,因此只能由一个控制器决定,谁先显示在最外面,谁就是栈顶控制器.

  6. 在iOS7之后,默认会把导航条上的按钮的图片渲染成蓝色.

  7. 导航条上的子控件位置不需要我们管理,只需要管理尺寸

  8. UINavigationItem:是一个模型,决定导航条的内容(左边内容,中间,右边内容)

  9. UIBarButtonItem:是一个模型,决定导航条上按钮的内容

  10. 以后只要看到item,通常都是苹果提供的模型,只要改模型就能修改苹果的某些控件.

results matching ""

    No results matching ""