1

我看到当从情节提要加载视图控制器时,这些事件按顺序发生

  • awakeAfterUsingCoder
  • 从笔尖醒来
  • viewDidLoad

在 awakeFromNib 中,我看到isViewLoaded== 错误。我应该使用哪个, -awakeFromNib 还是 -viewDidLoad?

当控制器本身从笔尖取消归档时,将调用 awakeFromNib。viewDidLoad 在创建/取消归档视图时调用。当控制器的视图存储在单独的 nib 文件中时,这种区别尤其重要。

在规范中awakeFromNib

nib 加载基础架构向从 nib 存档重新创建的每个对象发送 awakeFromNib 消息,但前提是存档中的所有对象都已加载和初始化。当一个对象收到一个 awakeFromNib 消息时,它保证已经建立了它的所有出口和动作连接

那么它提到了哪个出口和行动呢?另一件事是awakeAfterUsingCoder在我的情况下被调用了 3 次!

4

1 回答 1

0

这仅适用于笔尖。据我了解,如果我们从情节提要加载 ViewControllers awakeFromNib 会被调用,但在视图和子视图被初始化之前。这就是为什么不能保证视图和出口会被初始化。因此,如果您需要具有已建立出口和动作连接的对象,您需要使用 [self view] 启动 awakeFromNib,这就像一个有帮助的小技巧。

于 2016-05-12T14:26:37.037 回答