视图控制器

视图控制器创建的多种方式

什么是视图控制器

  • 视图控制器就是用来 ”控制“ 或者说 ”管理“ 界面(视图)的"换句话说界面长得丑与美由视图控制器说的算
  • 每个视图控制器(UIViewController)都有一个View属性来描述界面长什么样
  • 前面所讲的设置窗口的根控制器其实就是会把视图控制器的里View会添加在窗口上进行显示

视图控制器的创建方式

  1. UIStoryboard的方式
    • 获取storyboard箭头所指的视图控制器
    • 获取storyboard标识了ID所指的视图控制器
  2. 直接创建控制器
  3. 创建带xib的视图控制器
    • xib是描述界面长什么样的
    • 调用控制器的【-(instancetype)initWithNibName:bundle:】;
    • 方法为什么是nib,因为程序打包运行后,xib会放在bundle目录下,并且后缀名为nib"进入沙盒验证"
    • xib的 "File's Owner" 是代表界面由谁管理,控制器view对应哪个界面的描述

多控制器

  1. 导航控制器
    (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环境下清空资源前,会先释放

你可能感兴趣的:(视图控制器)