UINavigationController
设置:UIWindow的rootViewController为UINavigationController
根据情况 通过push方法添加对应个数的子控制器
以栈的形式保存子控制器
@property(nonatomic,copy)
NSArray *viewControllers;
@property(nonatomic,readonly)
NSArray *childViewControllers;
使用push方法将某个控制器压入栈
- (void)pushViewController:(UIViewController
*)viewController animated:(BOOL)animated;
三种方法添加控制器: nav:导航控制器 one:子控制器
[nav
addChildViewController:one];
[nav
pushViewController:one
animated:YES]; // 详解如上
nav.viewControllers =
@[one];
使用pop方法可以移除控制器
将栈顶的控制器移除
- (UIViewController *)popViewControllerAnimated:(BOOL)animated;
回到指定的子控制器
- (NSArray *)popToViewController:(UIViewController *)viewController animated:(BOOL)animated;
回到根控制器(栈底控制器)
- (NSArray *)popToRootViewControllerAnimated:(BOOL)animated;
修改 导航栏的属性 在各自的控制器里 修改该控制器显示的状态栏
分为:
标题文字 : self.navigationItem.title
=
@"第一页~";
标题view : self.navigationItem.titleView
= [UIButton
buttonWithType:UIButtonTypeContactAdd];
左右的按钮 左边一遍不用 因为有返回
单个按钮 :
self.navigationItem.rightBarButtonItem
= [[UIBarButtonItem
alloc]
initWithBarButtonSystemItem:UIBarButtonSystemItemCamera
target:nil
action:nil];
一组按钮 :
UIBarButtonItem *item1 = [[UIBarButtonItem
alloc]
initWithBarButtonSystemItem:UIBarButtonSystemItemFastForward
target:nil
action:nil];
UIBarButtonItem *item2 = [[UIBarButtonItem
alloc]
initWithBarButtonSystemItem:UIBarButtonSystemItemOrganize
target:nil
action:nil];
self.navigationItem.rightBarButtonItems =
@[item1 , item2];
上述是代码创建的~ 但是一般用storyboard 简单
控制器的生命周期: