ViewController
2016-03-10 19:54
197 查看
ViewController
一、结构
按照结构,ViewController分为两类:
1、主要用于显示界面,展示内容。如:UITableViewController,一般的UIViewController。
2、用于管理其他的ViewController。一般都是ViewController的容器。比如UINavigationController,UITabbarController,都有一个viewControllers属性,用来存放其管理的ViewController。所有的ViewController可以增加子ViewController,属性 childViewControllers 用来管理子视图控制器。
1.NavigationController :表示为Stack结构(栈),先进后出。push 新vc 入栈操作。pop vc 出栈操作。(pop后页面才会被释放,且无法pop 根vc)
2.TabbarController:表示Array结构。管理的ViewController是并列的。跟随TabbarController的生命周期。
3.父试图控制器:有自身的View,没有具体结构,灵活使用。
4.PageViewController 等VC就不多说了
二、生命周期
视图控制器的View用的是懒加载。
当调用get方法时候才会加载(loadView),view加载后才会执行viewDidLoad。
当view被添加到其他view中之前时,调用viewWillAppear方法,然后调用viewDidAppear。
当view从其他的view中移除之前,调用viewWillDisAppear,然后调用viewDidDisappear。
当view不再使用,而且是已经消失 disappeared,收到内存警告。view释放,并指向nil。
一、结构
按照结构,ViewController分为两类:
1、主要用于显示界面,展示内容。如:UITableViewController,一般的UIViewController。
2、用于管理其他的ViewController。一般都是ViewController的容器。比如UINavigationController,UITabbarController,都有一个viewControllers属性,用来存放其管理的ViewController。所有的ViewController可以增加子ViewController,属性 childViewControllers 用来管理子视图控制器。
1.NavigationController :表示为Stack结构(栈),先进后出。push 新vc 入栈操作。pop vc 出栈操作。(pop后页面才会被释放,且无法pop 根vc)
2.TabbarController:表示Array结构。管理的ViewController是并列的。跟随TabbarController的生命周期。
3.父试图控制器:有自身的View,没有具体结构,灵活使用。
4.PageViewController 等VC就不多说了
二、生命周期
视图控制器的View用的是懒加载。
当调用get方法时候才会加载(loadView),view加载后才会执行viewDidLoad。
当view被添加到其他view中之前时,调用viewWillAppear方法,然后调用viewDidAppear。
当view从其他的view中移除之前,调用viewWillDisAppear,然后调用viewDidDisappear。
当view不再使用,而且是已经消失 disappeared,收到内存警告。view释放,并指向nil。
相关文章推荐
- C语言访问mysql数据库
- .[算法]图论专题之最短路径
- WPF:如何在工作线程中更新窗体的UI元素(Dispatcher机制)
- codeforces 651B B. Beautiful Paintings(贪心JAVA代码)
- 计算机网络总结
- extern "C"
- 选择排序
- 文件上传下载的原理
- [Java开发之路](19)Long缓存问题
- 手游站点大全
- 卡拉OK效果的实现-IOS音乐播放器
- PostgreSQL 一主两备节点(两备节点为同步节点)故障恢复
- linux基础:用户与组,权限管理
- 利用Visual Studio 2013编译PCL 1.8.0 源码
- gdb调试工具的使用
- C和C++混合编程(__cplusplus使用)
- Java继承_接口练习题
- HDFS+MapReduce+Hive+HBase十分钟快速入门
- Mongodb的安装--简单快速
- uiatuomator提示shortMsg=java.lang.RuntimeException