为什么在viewWillAppear之前调用viewDidLoad?

时间:2015-11-17 07:12:00

标签: ios swift

我希望在显示视图之前执行代码,但在viewDidLoad之前调用viewWillAppear。为什么会这样?

3 个答案:

答案 0 :(得分:6)

将视图加载到内存时调用ViewDidLoad。即如果您使用的是故事板,该应用程序已取消归档视图并将其加载到内存中(尚未在屏幕上显示)。

当应用程序准备好在屏幕上加载视图时,它将调用viewWillAppear方法。

在您的情况下,如果您想在视图出现在屏幕上之前执行代码,您可以将其添加到viewDidLoad或viewWillAppear中。

答案 1 :(得分:0)

因为视图需要在显示之前加载到内存中。 您需要进一步阅读有关视图生命周期的信息。检查this link

只有在视图及其元素加载到内存后,才会在屏幕上绘制视图,并分别调用viewWillAppear和viewDidAppear。

如果您需要在显示视图之前执行代码,则需要使用viewWillAppear方法。

答案 2 :(得分:0)

我只是想提供更多信息,也许它会对你有所帮助。 如果您使用约束,您可以查看:

- viewDidLayoutSubviews()
  

调用以通知视图控制器其视图刚刚布局   它的子视图。

因此,在应用约束后将调用它。