1

addSubview 方法是否实际将视图加载到应用程序中?我问的原因是因为我的应用程序中有两个两个视图。应用程序委托将两个视图添加为子视图,然后将其中一个视图放在前面。现在,我在每个视图的每个 viewDidLoad 方法中都有一个打印语句。当我运行应用程序时,应用程序委托将视图加载为子视图,并且在加载每个视图时,我实际上看到控制台打印出我放置在每个 viewDidLoad 方法中的语句。这应该是这样做的吗?

4

2 回答 2

5

viewDidLoad 实际上是 UIViewController 的一个方法,而不是 UIView。它在视图加载到内存后被调用(在你的 init 方法之后,但在 awakeFromNib 之前)。您会注意到 addSubview: 将 UIView 作为参数,因此必须加载视图才能将视图添加到另一个视图。否则,您将尝试添加虚构的视图。

在回答您的问题时,是的,它应该这样做。viewDidLoad 在你 addSubview 之前很久就被调用了。事实上,如果您取出 addSubview: 行,您会注意到它仍然被调用(因为您正在创建视图的控制器)。

于 2009-07-10T19:37:25.540 回答
0

我的理解是视图是延迟加载的。如果您的视图控制器有 10 个视图,则在您实际尝试访问它们之前,它们不会全部加载。

于 2010-11-24T15:55:46.590 回答