您的位置:首页 > 产品设计 > UI/UE

多控制器

2015-09-25 17:36 411 查看
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 简单

控制器的生命周期:
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  UINavigationControll