通过故事板加载时如何初始化视图?

时间:2011-12-04 04:05:34

标签: objective-c ios xcode4.2 storyboard

当手动加载视图时,开发人员在初始化时仍然处于控制之中,我们选择要调用的初始化程序,要设置的变量等。

从故事板segue加载视图时...初始化程序会发生什么?应该在哪里设置变量我希望在加载视图后可用?

请帮我理解这里的顺序。如何在这里创建类的实例,谁创建它,我们如何干预并帮助我们按照自己的喜好进行设置?

1 个答案:

答案 0 :(得分:92)

从nib或storyboard加载视图时,会调用-initWithCoder:方法。与-initWithFrame:类似,-initWithCoder:是UIView的指定初始化程序。如果您要为UIView子类进行任何自定义初始化,则应确保这两种方法都发生了这种情况。一种常见的技术是添加从-initWithFrame:-initWithCoder:调用的通用初始化方法。有关更详细的说明,请参阅my answerCustom view and implementing init method?

请注意-initWithFrame:的文档说明:

  

如果使用Interface Builder设计界面,则此方法为   随后从笔尖加载视图对象时不调用   文件。重构nib文件中的对象然后进行初始化   使用他们的initWithCoder:方法,它修改了属性   视图以匹配存储在nib文件中的属性。