【问题标题】:How is view initialized when loaded via a storyboard?通过情节提要加载时如何初始化视图?
【发布时间】:2012-01-12 11:26:45
【问题描述】:

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

当从故事板 segue 加载视图时……初始化器会发生什么?加载视图后,我希望在哪里设置变量?

请帮助我理解这里的顺序。类的实例是如何在这里创建的,是谁创建的,我们如何干预和帮助设置它以满足我们的喜好?

【问题讨论】:

    标签: objective-c ios xcode4.2 storyboard


    【解决方案1】:

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

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

    如果你使用Interface Builder来设计你的界面,这个方法是 当您的视图对象随后从笔尖加载时不调用 文件。 nib 文件中的对象被重构然后初始化 使用他们的 initWithCoder: 方法,该方法修改了 视图以匹配存储在 nib 文件中的属性。

    【讨论】:

      猜你喜欢
      • 2012-01-05
      • 1970-01-01
      • 2023-04-08
      • 1970-01-01
      • 2015-09-07
      • 2012-06-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多