多控制器

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 簡單

控制器的生命週期:



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章