pan*_*pan 2 embed cocoa interface builder awakefromnib
我有两个笔尖:Parent.xib和Child.xib.
我已将Parent nib包含在Parent nib中以简化绑定.我在loadView中以编程方式设置子视图.问题是,awakeFromNib在Child的控制器中被调用了两次.
我想我明白为什么会这样.当Parent完成加载时,它会向其对象发送一个awakeFromNib,并且由于Child是其nib的文件所有者,因此它也会调用awakeFromNib.
我明白了吗?我最初的印象是每个实例只能调用一次awakeFromNib.我不应该在笔尖中嵌入笔尖吗?
在某些情况下,awakeFromNib每个实例可以调用多次,例如您设置的实例.另一种情况是一个加载多个nib对象的控制器.如果你真的想要,你可以解决这个问题,但更好的设计是不必要的.来自NSNibAwaking协议参考:
建议您在File的Owner对象及其关联的nib文件之间保持一对一的对应关系.使用相同的File的Owner对象加载两个nib文件会导致该对象的awakeFromNib方法被调用两次,这可能导致某些数据结构以不希望的方式重新初始化.还建议您避免从awakeFromNib方法实现中加载其他nib文件.
在您的特定示例中,没有理由将一个nib文件嵌入另一个nib文件中.你必须将它们都加载到内存中,而不方便在单个nib文件中包含所有对象,这样会占用内存空间.您应该将它们拆分并使用NSObjectControllernib文件中的实例来处理它们之间的绑定.
| 归档时间: |
|
| 查看次数: |
3361 次 |
| 最近记录: |