什么时候唤醒FromNib



是否在分配并初始化viewController之后立即调用awakeFromNib?视图控制器的awakeFromNib在哪个精确点被调用?从我的调试会话中,我看到rootViewController的awakeFromNib在执行[self.window makeKeyAndVisible]之前不会被调用。

awakeFromNib在分配和初始化视图及其子视图后被调用。可以保证视图将设置其所有出口实例变量。

编辑:事件的详细叙述:

在实例化过程中,归档中的每个对象未进行初始化,然后使用与其类型相匹配的方法进行初始化。Cocoa视图(以及可以使用关联的界面生成器调色板)initWithCoder:方法。自定义视图使用它们的initWithFrame:方法。已在中实例化的自定义类使用init方法初始化nib。

一旦从归档,nib加载代码尝试重新建立连接在每个对象的出口和对应的目标对象之间。如果您的自定义对象具有出口,NSNib对象尝试重新建立在接口生成器中创建的任何连接。它首先尝试使用对象自己的方法第一。对于每个需要连接的插座,NSNib对象在对象中查找形式为setOutletName:的方法。如果该方法存在,NSNib对象将调用它,并传递目标对象作为参数。如果您没有用它定义setter方法确切名称,NSNib对象在对象中搜索实例变量(IBOutlet id类型),具有相应的出口名称和尝试直接设置其值。如果具有找不到正确的名称,则初始化该连接不会发生最后,在所有对象完全初始化后,每个收到一条awakeFromNib消息

编辑2:这不适用于从序列图像板加载的视图控制器。

当编码器想要加载一个尚未初始化的对象时。

Exp:UITableViewCell中的控件将在代码调用不需要cellforrowawakeFromNib时初始化。

相关内容

  • 没有找到相关文章

最新更新