视图控制器创建的多种方式
什么是视图控制器
- 视图控制器就是用来 ”控制“ 或者说 ”管理“ 界面(视图)的"换句话说界面长得丑与美由视图控制器说的算
- 每个视图控制器(UIViewController)都有一个View属性来描述界面长什么样
- 前面所讲的设置窗口的根控制器其实就是会把视图控制器的里View会添加在窗口上进行显示
视图控制器的创建方式
- UIStoryboard的方式
- 获取storyboard箭头所指的视图控制器
- 获取storyboard标识了ID所指的视图控制器
- 直接创建控制器
- 创建带xib的视图控制器
- xib是描述界面长什么样的
- 调用控制器的【-(instancetype)initWithNibName:bundle:】;
- 方法为什么是nib,因为程序打包运行后,xib会放在bundle目录下,并且后缀名为nib"进入沙盒验证"
- xib的 "File's Owner" 是代表界面由谁管理,控制器view对应哪个界面的描述
多控制器
- 导航控制器 (1)导航控制器是用来管多个子控制器,实现不同界面间的 "来回切换",系统的界面就是一个导航控制器 (2)掌握代码创建导航控制器及设置根控制器 (3)掌握如何进入到下一个控制器、返回上一个控制器、返回第一控制器 (4)理解导航控制器的view的结构 (5)掌握导航控制器显示各个子控制器显示的的原理 //栈顶原理
/**
栈顶原理
0.导航控制器将所要显示的子控制器放到一个栈中
1.导航控制器显示的第一个控制器为栈顶控制器
2.返回上一个子控制器时,栈顶控制器的view从导航控制器的view中移除,并栈顶控制器将被销毁
3.把最新的栈顶控制器的view显示在导航控制器view的上面
4.所有的子控制器会存储在导航控制器的viewControllers属性中
*/
复制代码
(6)掌握导航控制器中导航栏左右两边的按钮与标题的设置
-
每一个控制器有个navigationItem属性
-
使用navigationItem可设置标题
-
设置标题还可以使用控制器的title属性
-
使用navigationItem还可设置左右两边的按钮
-
设置返回按钮,当前控制器设置的返回按钮是给下一个控制器显示的
-
navigationItem还有个titleView属性,可添加自己义的标题
控制器的生命周期
#####理解控制器的生命周期的几个方法
viewDidLoad //view加载完毕
viewWillAppear //view即将显示
viewDidAppear //view已经显示
viewWillDisappear //view即将消失
viewDidDisappear //view已经消失
viewWillUnload //view即被卸载
viewDidUnload //view已经卸载
dealloc //控制器被销毁
复制代码
接收到控制器内存警告
- 循问当前哪个view可以卸载,比如当前控制器不在窗口上,就代表不用,就进行卸载view
- 当view被卸载完后,清空数据来释放内存给别人用
- 在arc环境下清空资源前,会先释放