gavanwanggw

导航

UINavigationController

利用UINavigationController,能够轻松地管理多个控制器。轻松完毕控制器之间的切换,典型样例就是系统自带的“设置”应用

UINavigationController的使用步骤
初始化UINavigationController
设置UIWindow的rootViewController为UINavigationController
依据详细情况,通过push方法加入相应个数的子控制器。



UINavigationController以栈的形式保存子控制器
@property(nonatomic,copy) NSArray *viewControllers;
@property(nonatomic,readonly) NSArray *childViewControllers;


使用push方法能将某个控制器压入栈
- (void)pushViewController:(UIViewController *)viewController animated:(BOOL)animated;


使用pop方法能够移除控制器
将栈顶的控制器移除
- (UIViewController *)popViewControllerAnimated:(BOOL)animated;
回到指定的子控制器
- (NSArray *)popToViewController:(UIViewController *)viewController animated:(BOOL)animated;
回到根控制器(栈底控制器)
- (NSArray *)popToRootViewControllerAnimated:(BOOL)animated;



1.导航栏的View显示的内容是栈顶控制器的View.
2.导航栏的内容由栈顶控制器的navigationItem属性决定.

UINavigationItem有下面属性影响着导航栏的内容
左上角的返回button
@property(nonatomic,retain) UIBarButtonItem *backBarButtonItem;
中间的标题视图
@property(nonatomic,retain) UIView          *titleView;
中间的标题文字
@property(nonatomic,copy)   NSString        *title;
左上角的视图
@property(nonatomic,retain) UIBarButtonItem *leftBarButtonItem;
UIBarButtonItem *rightBarButtonItem  右上角的视图
@property(nonatomic,retain) UIBarButtonItem *rightBarButtonItem;


// 改动下一个界面返回button的文字
self.navigationItem.backBarButtonItem = [[UIBarButtonItem alloc] initWithTitle:@"返回" style:UIBarButtonItemStyleDone target:nil action:nil];


posted on 2017-08-12 14:35  gavanwanggw  阅读(114)  评论(0编辑  收藏  举报