在使用故事板时,UIView委托在什么阶段设置

时间:2014-06-29 05:38:48

标签: ios objective-c uiview uiviewcontroller storyboard

我试图在自定义UICollectionView子类中使用self.delegate。但是,在self.delegate中尝试使用initWithCoder时,该值仍为nil。它会在稍后阶段发生变化,例如在控制器的viewDidLoad或视图awakeFromNib中。

在View / Controller生命周期中,此值是否已设置?

我可以安全地使用它的第一个地方在哪里?

2 个答案:

答案 0 :(得分:2)

awakeFromNib是您正在寻找的重点。这是从nib文件实例化的第一个点,您可以保证已经配置了子视图和插座。

答案 1 :(得分:1)

在故事板中创建视图控制器时,您在Interface Builder中配置的属性将序列化为存档。稍后,当实例化视图控制器时,此存档将加载到内存中并进行处理。结果是一组对象,其属性与您在Interface Builder中设置的属性相匹配。通过调用视图控制器的initWithCoder:方法加载存档。

然后,在实现该方法的任何对象上调用awakeFromNib方法,在视图之后调用awakeFromNib并分配和初始化其子视图。保证视图将设置其所有插座实例变量。您可以使用此方法执行任何需要已实例化其他对象的配置步骤。有关详细信息,请参阅ViewController programming guide