ViewController里的loadView和viewDidLoad什么区别-问答-阿里云开发者社区-阿里云

开发者社区> 问答> 正文
阿里云
为了无法计算的价值
打开APP
阿里云APP内打开

ViewController里的loadView和viewDidLoad什么区别

2016-07-20 14:29:02 1444 1

XCode生成的代码里
loadView方法直接就是空的
viewDidLoad方法有

[super viewDidLoad];
loadView为什么不需要调用super的方法呢?
如果调用了会发生什么

取消 提交回答
全部回答(1)
  • a123456678
    2019-07-17 19:58:49

    按住Option键,用鼠标点一下loadView,弹出来的文档里面解释的非常清楚,对你所有的疑问都有回答。下面是中文的简单翻译,但我还是建议你读一下文档。

    当你访问一个ViewController的view属性时,如果此时view的值是nil,那么,ViewController就会自动调用loadView这个方法。这个方法就会加载或者创建一个view对象,赋值给view属性。

    loadView默认做的事情是:如果此ViewController存在一个对应的nib文件,那么就加载这个nib。否则,就创建一个UIView对象。

    如果你用Interface Builder来创建界面,那么不应该重载这个方法。

    如果你想自己创建view对象,那么可以重载这个方法。此时你需要自己给view属性赋值。你自定义的方法不应该调用super。如果你需要对view做一些其他的定制操作,在viewDidLoad里面去做。

    =========================================

    根据上面的文档可以知道,有两种情况:

    1、如果你用了nib文件,重载这个方法就没有太大意义。因为loadView的作用就是加载nib。如果你重载了这个方法不调用super,那么nib文件就不会被加载。如果调用了super,那么view已经加载完了,你需要做的其他事情在viewDidLoad里面做更合适。

    2、如果你没有用nib,这个方法默认就是创建一个空的view对象。如果你想自己控制view对象的创建,例如创建一个特殊尺寸的view,那么可以重载这个方法,自己创建一个UIView对象,然后指定 self.view = myView; 但这种情况也没有必要调用super,因为反正你也不需要在super方法里面创建的view对象。如果调用了super,那么就是浪费了一些资源而已。

    最后,还是建议遇到问题先看官方文档,里面对每个方法内部是怎么实现的,重载的时候需要注意什么都说的很清楚。

    0 0
相关问答

1

回答

如何生成Web后端应用(有Controller)?

2022-05-13 23:32:47 180浏览量 回答数 1

1

回答

如何实现 Controller ?

2022-04-11 16:17:18 760浏览量 回答数 1

1

回答

Hadoop集群中的DFSZKFailoverController进程的作用是什么呢?

2021-12-05 23:41:17 267浏览量 回答数 1

1

回答

Job Controller是什么呢?

2021-10-30 22:29:25 120浏览量 回答数 1

1

回答

@Controller 注解是什么?

2021-10-26 22:35:05 86浏览量 回答数 1

1

回答

push一个ViewController时怎样隐藏自定义的tab bar?

2016-07-27 17:18:19 1580浏览量 回答数 1

1

回答

当用popViewControllerAnimated后退之前的view,如何更新view的数值

2016-06-28 19:30:30 1952浏览量 回答数 1

1

回答

有关ios的viewController问题

2016-05-27 15:55:48 1551浏览量 回答数 1

1

回答

xcode-将数组发送到下一个viewcontroller中

2016-03-26 09:39:36 1285浏览量 回答数 1

1

回答

报错:nil modal view controller

2016-03-26 09:59:35 1948浏览量 回答数 1
+关注
0
文章
14879
问答
问答排行榜
最热
最新
相关电子书
更多
低代码开发师(初级)实战教程
立即下载
阿里巴巴DevOps 最佳实践手册
立即下载
冬季实战营第三期:MySQL数据库进阶实战
立即下载