10

我已经很习惯使用 viewDidLoad 方法来执行我想要在视图开始时完成的事情,但是阅读 Apple 的教程之一,他们在 awakeFromNib 方法中为类设置了数据控制器,而在 awakeFromNib 中什么也没做。我交换了它,它似乎在我的应用程序中工作相同,但我不确定将它放在 awakeFromNib 或 viewDidLoad 中是否更好。

我什么时候应该使用其中之一?

4

2 回答 2

7

awakeFromNib当与类关联的 nib 文件被加载时调用。任何可以拥有 nib 的班级都可以使用它。viewDidLoad仅由视图控制器使用。它通常在从 nib 加载时调用,但也可以由在内存中创建的视图调用(非常罕见的情况。)。如果您使用的是控制器,那么我建议您使用viewDidLoad

有关更多信息,请参阅此答案

于 2012-12-29T04:34:31.450 回答
1

viewDidLoad 与视图控制器相关联。如果您需要初始化从 nib 未归档的另一个控件(例如 UITableViewCell 原型),您不能重载 viewDidLoad,您需要重载 awakeFromNib。

于 2014-03-03T20:15:07.210 回答