首页 > 代码库 > UI第八课
UI第八课
主要内容:UINavigationController、定制UINavigationBar、界面间通信(属性传值、代理传值)
一、UINavigationController
UINavigationController:导航控制器,是iOS中最常用的多视图控制器之一,它用来管理多个视图控制器
注意:
1、导航控制器可以认为是管理控制器的控制器,主要管理有层级关系的控制器
2、UINavigationController继承与UIController,以栈的方式管理所控制的视图控制器,至少要有一个被管理的视图控制器,这个视图控制器,我们称之为导航控制器的跟视图控制器
工作原理:
UINavigationController通过栈的方式管理控制器的切换,控制入栈和出栈来展示各个视图控制器
UINavigationController的ContentView里始终显示栈顶控制器的View
viewControllers属性存储了栈中所有被管理的控制器
UINavigationController属性,父类中的属性,每个在栈中的控制器,都能通过此属性,获取自己所在的UINavigationController对象
入栈和出栈:
pushViewController: animated / / 进入下一个视图控制器
popViewControllerAnimated: / / 返回上一个视图控制器
popToViewController: animated / / 返回到指定的视图控制器
popToRootViewControllerAnimated / / 返回到跟视图控制器
常用属性
viewControllers / / 所有处于栈中的控制器
topViewController / / 位于栈顶的控制器
visibleViewController / / 当前正在显示的控制器
navigationBar / / 导航条
二、navigationBar
navigationBar:导航条,iOS7之后是默认透明的之前是不透明的
navigationBar在透明情况时,与contentView会重合一部分区域
navigationBar在不透明时,contentView在navigationBar的下面
注意:navigationBar在竖屏状态下默认高度是44,横屏状态下默认高度是32
常用
barTintColor / / 设置导航条的颜色
setBackgroundImage: forBarMetrics: / / 导航条加背景图片
UINavigationBar也是以栈的方式管理一组UINavigationItem,提供push和pop操作item
注意:每个视图控制器都有一个navigationItem属性,navigationItem中设置的左按钮、右按钮标题等,会随着控制器的显示,显示到navigationBar上
UI第八课