【发布时间】:2012-01-12 11:26:45
【问题描述】:
当手动加载视图时,开发人员在初始化时仍然可以控制,我们选择要调用的初始化程序、要设置的变量等。
当从故事板 segue 加载视图时……初始化器会发生什么?加载视图后,我希望在哪里设置变量?
请帮助我理解这里的顺序。类的实例是如何在这里创建的,是谁创建的,我们如何干预和帮助设置它以满足我们的喜好?
【问题讨论】:
标签: objective-c ios xcode4.2 storyboard
当手动加载视图时,开发人员在初始化时仍然可以控制,我们选择要调用的初始化程序、要设置的变量等。
当从故事板 segue 加载视图时……初始化器会发生什么?加载视图后,我希望在哪里设置变量?
请帮助我理解这里的顺序。类的实例是如何在这里创建的,是谁创建的,我们如何干预和帮助设置它以满足我们的喜好?
【问题讨论】:
标签: objective-c ios xcode4.2 storyboard
当从 nib 或故事板加载视图时,会调用 -initWithCoder: 方法。和-initWithFrame: 一样,-initWithCoder: 是 UIView 的指定初始化器。如果您要为 UIView 子类进行任何自定义初始化,则应确保这两种方法都发生。一种常见的技术是添加一个从-initWithFrame: 和-initWithCoder: 调用的通用初始化方法。有关更详细的说明,请参阅 my answer 至 Custom view and implementing init method?。
请注意,-initWithFrame: 的文档说明:
如果你使用Interface Builder来设计你的界面,这个方法是 当您的视图对象随后从笔尖加载时不调用 文件。 nib 文件中的对象被重构然后初始化 使用他们的 initWithCoder: 方法,该方法修改了 视图以匹配存储在 nib 文件中的属性。
【讨论】: