UIViewController的生命周期及界面切换
本Markdown编辑器使用[StackEdit][6]修改而来,用它写博客,将会带来全新的体验哦:
1.为什么使用viewController
常识: iOS应用由于手机屏幕比较小, 一般情况下, iOS应用都是由多个界面构成的, 为了管理每个界面, 系统提供了一个类 UIViewController类
UIViewController是一个非常重要的类,
以后项目中一个界面就是一个UIViewController
2.怎么去控制界面:MVC设计模式
MVC是一种界面实现的设计模式。把每个界面的实现分成为数据层,view(也就是界面),controller逻辑处理器。
(1).view里面是什么,UILabel,UIButton,UIImageView。view负责把界面展示出来。
(2).Model数据模型,也可以理解为一个界面的数据属性。(NSString,NSDictionary,NSArray,还有对象属性)
(3).Controller,简单来说,就是把数据显示到View上,然后通过view中的用户操作更新数据
3.viewController的生命周期(事件处理)
//loadView- dealloc 视图控制器的视图的生命周期(view从创建到销毁的一系列方法)
1、不重写loadView方法,ViewController的父类会自动调用loadView方法,创建一个UIView的实例,作为视图控制器的view属性中的view
2、重写loadView方法(最好不要重写),必须手动调用 [super loadView] 让UIViewController创建一个空的UIView,供ViewController来使用
3、一般情况下,loadView,viewDidLoad方法只调用一次(一旦视图被创建和加载完成之后,就不再创建和加载)
视图控制器从创建到显示过程:
alloc+init 创建
loadView 加载视图(不要重写)
viewDidLoad 视图已经被加载完成了,视图加载完成之后执行, 只会执行一次
viewWillAppear 视图即将显示,视图现实的时候执行, 每次显示都会执行
viewDidAppear 视图已经显示了
视图控制器从显示到释放过程:
viewWillDisappear 视图即将消失
viewDidDisappear 视图已经消失
dealloc 销毁视图控制器
4.简单的界面之间的切换
(1)presentViewController(推进)
(2)dimssViewController(推出)
(3)界面切换动画UIModalTransitionStyle
sVC.modalTransitionStyle = UIModalTransitionStylePartialCurl;