视图控制器

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

什么是视图控制器

  • 视图控制器就是用来 ”控制“ 或者说 ”管理“ 界面(视图)的"换句话说界面长得丑与美由视图控制器说的算
  • 每个视图控制器(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环境下清空资源前,会先释放
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

友情链接更多精彩内容