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 簡單
控制器的生命週期: