文档章节

ViewController的LoadView和ViewDidLoad方法相关知识总结

今日竹石
 今日竹石
发布于 2014/01/06 16:09
字数 371
阅读 146
收藏 3

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

     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创建了对象。


© 著作权归作者所有

今日竹石
粉丝 41
博文 227
码字总数 181312
作品 0
朝阳
程序员
私信 提问
ViewController的生命周期分析和使用

作者 shenqiliang 发布在 2012年3月20日 下午8:11 iOS的SDK中提供很多原生ViewController,大大提高了我们的开发效率,下面是我的一些经验。 一、结构 按结构可以对iOS的所有ViewController分...

Orange1
2012/10/25
0
1
网上总结 loadView 和 viewDidLoad

iPhone开发必不可少的要用到这两个方法。 他们都可以用来在视图载入的时候,初始化一些内容。 但是他们有什么区别呢? viewDidLoad 此方法只有当view从nib文件初始化的时候才被调用。viewDid...

张志浩
2012/12/03
0
0
iOS基础知识整理之ViewController的生命周期

ViewController的生命周期 1.init init函数并不会每次创建对象都调用,只有在这个类第一次创建对象时才会调用,做一些类的准备工作,再次创建这个类的对象,initalize方法将不会被调用,对于...

无忌不悔
2018/11/07
0
0
(转载)由init、loadView、viewDidLoad、viewDidUnload、de...

init方法 在init方法中实例化必要的对象(遵从LazyLoad思想) init方法中初始化ViewController本身 loadView方法 当view需要被展示而它却是nil时,viewController会调用该方法。不要直接调用...

星空k
2012/08/11
0
0
UIViewController生命周期

UIViewController继承了UIResponder,而UIResponder继承了NSObject,UIViewController是所有视图控制器的父类。 在MVC模式中,UIViewController扮演C(controller)的角色,控制视图以及模型...

Dean83
2012/08/08
0
1

没有更多内容

加载失败,请刷新页面

加载更多

web前端性能优化

js相关 根据js时间线,将js放在最下面加载,先加载DOM,再加载js 懒执行,就是将某些逻辑延迟到使用时再执行。该技术可用于首屏优化,对于某些耗时逻辑并不需要在首屏就使用的,就可以使用懒...

祖达
15分钟前
0
0
websocket通信failed to execute 'send'问题的解决

在建立web socket通信后,发送数据时,出现下图所示现象: 问题代码演示 function TestSockets() { //实例化一个WebSocket对象 var socket = new WebSocket("ws://127.0.0.1:8000/w...

城市之雾
21分钟前
0
0
PHPStorm 如何设置 yaf 代码提示?

下载 php-yaf-doc git clone https://github.com/elad-yosifon/php-yaf-doc.git PHPStorm 如下设置 使用

whoru
22分钟前
0
0
typeorm drop foreign key

1. 问题描述 项目代码中使用typeorm进行mysql的数据操作, 昨天突然部署测试环境发现测试环境数据库的外键都为空了, 导致涉及的整个系统不可用. 2. 问题探究 尝试复现 mysqldump 线上数据, 然...

jimmywa
23分钟前
2
0
好程序员web前端开发测验之css部分

好程序员web前端开发测验之css部分Front End Web Development Quiz CSS 部分问题与解答 Q: CSS 属性是否区分大小写? <p><font size="3">  ul {</font></p> <p><font size="3">  MaRGin:......

好程序员IT
28分钟前
0
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部