UINavigationController的简单使用

0 :状态栏的高度是20,导航栏的高度是44,在iOS7下状态栏的颜色会被导航栏的颜色同化。

图片中紫色的是状态栏,绿色的是导航栏

1:UINavigationController的使用步骤

初始化UINavigationController
设置UIWindow的rootViewController为UINavigationController
根据具体情况,通过push方法添加对应个数的子控制器

2:UINavigationController原理

2.0 UINavigationController以栈的形式保存子控制器

@property(nonatomic,copy) NSArray *viewControllers;

@property(nonatomic,readonly) NSArray *childViewControllers;

 

2.1 使用push方法能将某个控制器压入栈

- (void)pushViewController:(UIViewController *)viewController animated:(BOOL)animated;

 

2.2 使用pop方法可以移除控制器
将栈顶的控制器移除

- (UIViewController *)popViewControllerAnimated:(BOOL)animated;

回到指定的子控制器

- (NSArray *)popToViewController:(UIViewController *)viewController animated:(BOOL)animated;

回到根控制器(栈底控制器)

- (NSArray *)popToRootViewControllerAnimated:(BOOL)animated;

 

3导航栏的内容由栈顶控制器的navigationItem属性决定

UINavigationItem有以下属性影响着导航栏的内容
3.1 左上角的返回按钮

@property(nonatomic,retain) UIBarButtonItem *backBarButtonItem;

 
3.2中间的标题视图

@property(nonatomic,retain) UIView          *titleView;

 
3.3中间的标题文字

@property(nonatomic,copy)   NSString        *title;

 
3.4左上角的视图

@property(nonatomic,retain) UIBarButtonItem *leftBarButtonItem;

 
3.5右上角的视图

@property(nonatomic,retain) UIBarButtonItem *rightBarButtonItem;

4 UINavigationBarController的view内部结构

自控制器view(红色view)是从左上角的(0,0)开始的

绿色的导航条高度是44,它上面是高度为20的状态栏,右边的红色view会整体覆盖到左边的图上

最终效果:导航条是透明的,所以可以看到后面泛红。

 7

7.1 一个导航控制器只有一个导航条,开发过程中都是多个自控制器共用一个条,并且显示到不同控制器上的导航条内容也相应的换掉

7.2 显示在我们眼前的永远是栈顶控制器,

7.3 导航栏上面显示什么内容由栈顶控制器决定。

posted @ 2014-12-04 16:49  笑看风雨  阅读(2663)  评论(0编辑  收藏  举报