首页 > 代码库 > [ IOS ] iOS-控制器View的创建和生命周期
[ IOS ] iOS-控制器View的创建和生命周期
reference to :
1. 控制器View的创建
首先我们来看一下控制器view创建的流程图
控制器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: 加载viewviewDidLoad: 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,等用到时再加载.
[ IOS ] iOS-控制器View的创建和生命周期
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。