【问题标题】:How to lazy load views programmatically from storyboards如何以编程方式从情节提要中延迟加载视图
【发布时间】:2012-02-28 00:33:10
【问题描述】:

在以前版本的 Interface Builder 中,当我想以编程方式延迟加载视图时,我会执行以下操作:

self.customView = [[NSBundle mainBundle] loadNibNamed:@"CustomView" owner:nil];

如果我理解正确,这是正确的做法。故事板似乎没有办法做到这一点,因为无法将视图添加到故事板本身(不属于视图控制器)。

我有一个管理多个视图的视图控制器。我不希望它们都加载到 viewDidLoad 上,所以我宁愿不将它们包含在视图控制器的 nib 中。还有其他方法吗?如果没有,我仍然可以创建 nib 并仍然使用 loadNibNamed。有人可以建议这是否是一个合适的策略,混合笔尖和故事板? Apple 不允许在故事板中加载这种视图的事实让我有点担心。

【问题讨论】:

    标签: ios uiview uistoryboard


    【解决方案1】:

    有人可以建议这是否是一个合适的策略,混合笔尖和故事板?

    XIBS 和 Storyboard 并不相互排斥。没有理由不应该在同一个应用程序中同时使用两者。我实际上在同一个应用程序中使用了多个故事板和 xib。工作正常。

    【讨论】:

    • 那么确定没有办法加载情节提要的“部分”吗?它们可能一起工作得很好,但有时将相似的资产放在一起很方便,人们可能会推断故事板是 nib 文件结束的开始 (??)
    • 是的,如果您想使用instantiateViewControllerWithIdentifier :,您可以从情节提要中加载任何视图控制器。这并不意味着 xibs 会消失,就像您仍然可以在代码中构建整个 UI 一样,即使 xibs 可能在没有代码的情况下更容易。
    猜你喜欢
    • 1970-01-01
    • 2012-05-11
    • 2012-06-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-08-11
    • 2017-10-18
    相关资源
    最近更新 更多