博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
UINavigationController的简单使用
阅读量:5192 次
发布时间:2019-06-13

本文共 1470 字,大约阅读时间需要 4 分钟。

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 导航栏上面显示什么内容由栈顶控制器决定。

转载于:https://www.cnblogs.com/xiaokanfengyu/p/4143245.html

你可能感兴趣的文章
Linux查看与挂载新磁盘
查看>>
修改UISearchBar placeholder textColor
查看>>
Redis学习基础一
查看>>
在做excel导出时如何将workbook直接写在输出流中
查看>>
javascript中jQuery对象和dom对象
查看>>
一本通1640C Looooops
查看>>
SQL执行顺序
查看>>
20165219 《Java程序设计》实验三(敏捷开发与XP实践)实验报告
查看>>
flutter-StatelessWidget与StatefulWidget
查看>>
Polo the Penguin and XOR operation(位运算 思维)
查看>>
设计模式之代理
查看>>
设计模式----看大话设计模式笔记(二)
查看>>
可复用的自定义Adapter
查看>>
struts2 Action获取表单传值
查看>>
NumPy 学习笔记(四)
查看>>
Unity骨骼动力学应用
查看>>
gnuradio companion 找不到第三方模块gr-osmosdr的问题
查看>>
Vue使用QRCode.js生成二维码
查看>>
BZOJ 1004 【HNOI2008】 Cards
查看>>
BZOJ 1758 【WC2010】 重建计划
查看>>