三、UINavigationController导航控制器
- UINavigationController中的子控制器以栈的形式存储,只有在栈顶部的控制器才能显示在界面上
- 压栈pushController,出栈popController
- UINavigationController必须有一个根控制器rootViewController
- 子控制器通过navigationController属性访问UINavigationController
- 在栈中的子控制器都有一个导航栏navigationBar,通过navigationItem去控制
UINavigationItem属于MVC中的Model,封装了要显示在UINavigationBar上的数据:
title: 标题
titleView :标题视图
leftBarButtonItem :左按钮
rightBarButtonItem :右按钮
下一个子视图左侧返回按钮leftBarButtonItem的标题优先级:
- 导航栏返回按钮backBarButtonItem的标题
- 导航栏navigationItem的标题
- 视图控制器的标题
UINavigationController常用的主要方法:
复制代码
#pragma mark 压栈,把控制器压入导航控制器子控制器栈中
- (void)pushViewController:(UIViewController *)viewController animated:(BOOL)animated;
#pragma mark 出栈,把导航控制器子控制器栈的栈顶弹出
- (void)popViewControllerAnimated:(BOOL)animated;
#pragma mark 多次出栈直到栈顶为指定控制器
- (void)popToViewController:(UIViewController *)viewController animated:(BOOL)animated;
#pragma mark 多次出栈直到栈顶为根控制器
- (void)popToRootViewControllerAnimated:(BOOL)animated;











