viewDidLoad()vs. loadView()(Swift3)

这个月在Flatiron学校,我们深陷“项目模式”! 对于小组的项目,我一直在视图中使用程序化UI元素,这使我成为本博客文章的主题。 现在,我们都知道并喜欢视图控制器中的viewDidLoad(),但是loadView()呢? 这个loadView()函数是什么?

loadView()是由viewController管理的方法。 当其当前视图为nil时,viewController调用它。 loadView()基本上获取一个视图(您创建的)并将其设置为viewController的视图(superview)。

可以为我们的viewController创建视图的方式有哪些?

好了,您可以创建一个xib(nib),可以使用情节提要(Interface Builder),也可以以编程方式创建一个UIView对象。

因此,如果我使用情节提要,是否需要使用loadView()?

如果使用情节提要,则不需要使用loadView()。 实际上,不要重写此方法。 仅当您手动创建视图(即不是故事板)时才重写此方法。 loadView()创建并实例化UIView对象。

因此,如果我从Xib / Nib创建视图并想进一步对其进行自定义,则应使用哪种方法?

使用名为viewDidLoad()的方法,即loadView()完成其工作并且UIView准备好显示之后。 viewDidLoad()允许您初始化view / viewController对象的属性,并在调用viewWillAppear()之前将其完成。

那么,首先加载哪种方法?

当视图完成加载时,将调用viewDidLoad(),而在视图开始加载时,将调用loadView()。

希望这有助于弄清差异!

资源:

loadView()— Apple文档

viewDidLoad()— Apple文档