[ IOS ] iOS-控制器View的创建和生命周期
ios 创建 View 生命周期 控制器
2023-09-14 08:56:59 时间
reference to :
1. 控制器View的创建
首先我们来看一下控制器view创建的流程图
![](http://upload-images.jianshu.io/upload_images/1434508-370daf660ff330e4.jpeg?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
控制器view加载.jpeg
从图中我们可以看出,在控制器view加载过程中有两个重要的方法loadView和viewDidLoad。下面我们来重点了解一下这两个方法。
loadView方法
作用:loadView方法是用来负责创建UIViewController的view。首先判断下有没有指定storyboard或者xib,如果指定,就会加载它们描述的控制器的view,如果没有指定,创建一个空的view。
什么时候调用:每次访问UIViewController的view,当view为nil,就会调用loadView方法。
viewDidLoad
作用:一般我们会在这里做界面上的初始化操作,比如往view中添加一些子视图等。
什么时候调用:每当view创建完毕的时候,最终都会调用viewDidLoad方法。
其次,在view创建过程中还有一些需要注意的地方。
1: 通过storyboard创建的控制器,或者通过xib创建的控制器的view,系统会帮我们加载控制器的view,具体内部实现可以看iOS-UIWindow详解,在此不在赘述 2: ViewController *vc = [[ViewController alloc]init]; 底层也会调用-(instancetype)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil方法。 (1).判断下有没有指定nibName,如果指定了,就会去加载指定的xib (2).如果没有指定,就会判断下有没有跟控制器类名同名的xib,有,就会去加载 (3).判断下有没有跟控制器类名同名的xib,但是后缀不带Controller的xib,如果有,就会去加载 (4).如果没有任何xib描述控制器的view,就不会加载xib。会创建一个颜色为clearColor的view。
2. 控制器View的生命周期
控制器View的生命周期方法
loadView: 加载view viewDidLoad: view加载完毕 viewWillAppear: 控制器的view将要显示 viewWillLayoutSubviews: 控制器的view将要布局子控件 viewDidLayoutSubviews: 控制器的view布局子控件完成 viewDidAppear: 控制器的view完全显示 viewWillDisappear: 控制器的view即将消失的时候 viewDidDisappear: 控制器的view完全消失的时候
view生命周期方法调用顺序
viewDidLoad -> viewWillAppear -> viewWillLayoutSubviews -> viewDidLayoutSubviews -> viewDidAppear -> viewWillDisappear -> viewDidDisappear
3. 控制器View的延迟加载
控制器的view是延迟加载的:创建控制器并不一定会创建控制器的view,等用到时再加载.
相关文章
- (NO.00003)iOS游戏简单的机器人投射游戏成形记(八)
- (NO.00003)iOS游戏简单的机器人投射游戏成形记(三)
- iOS设计模式 - 原型
- iOS开发:创建真机调试证书
- 如何创建可扩展表视图中的iOS 学习和拓展优化(有待更新)
- iOS开发UI篇—ios应用数据存储方式(XML属性列表-plist)
- iOS开发UI篇—使用storyboard创建导航控制器以及控制器的生命周期
- [转] iOS文字排版(CoreText)那些事儿
- 【IOS-COCOS2D-X 游戏开发之四】COCOS2DX创建ANDROID NDK新项目并编译导入ECLIPSE中正常运行!
- IOS中 浅谈iOS中MVVM的架构设计与团队协作
- 关东升的iOS实战系列图书 《iOS实战:传感器卷(Swift版)》已经上市
- iOS开发那些事--创建基于nib的iOS 6的HelloWorld工程
- ios swift array filter
- iOS(oc) xcode创建分类(Categary)
- iOS arm
- iOS运行时文档解析(Runtime oc消息转发 objc_msgSend 动态加载方法)
- 创建自签名的 SSL 证书以及 添加自签CA到 电脑或者IOS, debian 添加 信任的 CA
- ios面试题和知识点整理