博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
ViewController的LoadView和ViewDidLoad方法相关知识总结
阅读量:7220 次
发布时间:2019-06-29

本文共 759 字,大约阅读时间需要 2 分钟。

hot3.png

     首先介绍一下View的生命周期,如下图所示:

160517_m1ls_1244156.jpeg

     ViewController的LoadView和ViewDidLoad方法分别什么时候会调用呢?又是谁调用的它们?

  • 在vc初始化时(此处不明确是否是init()里调用,所以没有具体那个或者哪些方法而是用“初始化”这么抽象的描述。。),会调用loadView(),然后执行ViewDidLoad(),因为复写的loadView中并没有调用ViewDidLoad,但其确实被调用了,所以确定其不是在viewLoad中调用。

  • 当执行[self view]时,如果view==nil(view为null,相信主要就是viewDidUnLoad()的[supper viewDidUnLoad]将其赋值为nil),则调用loadView及ViewDidLoad;

    loadView():

  • 其[supper loadView]会根据是否有xil以生成view对象,没有则new一个UIView对象给view,也就是说loadView中会生成View对象

  • 假如我们要复写loadView,给view赋一个我们自定义的view,就不要调用[supper loadView]了,大神们都说这样做会影响性能,但没解释为什么会降低性能,我想因为[supper loadView]在这种应用场景下调用就是一行多余的代码,因为你自定义的View最终会替代[supper loadView]所创建的view。

    viewDidLoad():

  • 通常我们对view的进一步初始化会写在这里面,比如加入button等;

  • 这两个方法都是对view进行初始化且都会一起被调用,loadView给view创建了对象。

转载于:https://my.oschina.net/u/1244156/blog/190766

你可能感兴趣的文章
116 - Unidirectional TSP(DP)
查看>>
内存泄露问题
查看>>
Python type()函数用途及使用方法
查看>>
Autohotkey window 下宏键盘、宏命令开发入门
查看>>
验证码处理类:UnCodebase.cs + BauDuAi 读取验证码的值(并非好的解决方案)
查看>>
Flat UI简介
查看>>
Dos常用命令
查看>>
Linux和Windows上实现的异同-Linux的自适应ACK
查看>>
我的代码库-Java8实现FTP与SFTP文件上传下载
查看>>
带有Apache Spark的Lambda架构
查看>>
trick
查看>>
jar包的启动和停止脚本
查看>>
字符串格式化格式 -- Numeric Format Strings
查看>>
arm浮点运算
查看>>
分布式系列 - dubbo服务telnet命令【转】
查看>>
java运维: 一次线上问题排查所引发的思考
查看>>
分布式高并发物联网(车联网-JT808协议)平台架构方案
查看>>
华为S5300系列升级固件S5300SI-V100R006C00SPC800.cc
查看>>
python3.7+opencv3.4.1
查看>>
redux VS mobx (装饰器配合使用)
查看>>