【问题标题】:iPhone IOS5 Storyboard, how to load a UIViewController with a custom .xib file?iPhone IOS5 Storyboard,如何加载带有自定义 .xib 文件的 UIViewController?
【发布时间】:2012-02-01 02:41:04
【问题描述】:

我有一些来自旧 iOS4 项目的 UIViewControllers,它们使用 .xib,在界面生成器中创建。

我为 iOS5 构建的新项目使用故事板。

我正在尝试将 UIViewController 添加到情节提要中,但让它使用我已经拥有的自定义 XIB。我已经在 indentity 检查器(在界面生成器中)中设置了控制器的身份,但不确定如何要求该控制器加载自定义 .xib。

感谢任何帮助!

PS。到目前为止,我能够通过为情节提要创建一个“包装器”类来解决这个问题,并让该类有另一个 UIViewController。但这有点违背故事板的全部意义。

【问题讨论】:

    标签: iphone objective-c ios5 interface-builder storyboard


    【解决方案1】:

    您可以将 xib 的内容复制到情节提要中,然后使用以下方法对其进行实例化:

    - (id)instantiateViewControllerWithIdentifier:(NSString *)identifier
    

    设置标识符后就可以了。如果您需要情节提要的实例,可以通过以下方式获取:

    [UIStoryboard storyboardWithName:@"MainStoryboard" bundle:nil];
    

    【讨论】:

    • 将 .xib 内容复制到他的主故事板文件不是更简单吗?
    • 是的,这就是我告诉他的。请注意,您还可以从 storyboard 属性中的任何 UIViewController 获取故事板。
    • 在弄乱了包装器和 viewDidLoad 的顺序之后,我很高兴只是复制界面并手动连接它,尽管这是我希望避免的。跨度>
    【解决方案2】:

    Mike K 的回答是错误的。

    虽然混合 XIB 和 Storyboard 并不能真正解决 Alex 的问题,但很有可能在同一个项目中解决。

    请参阅:https://stackoverflow.com/a/8516479/1309238 re:加载第二个故事板。

    如果您打算这样做,我不确定是否建议在您的目标摘要中包含“主要故事板”,但如果您已加载 XIB 而不是故事板开始,您可以修改链接的代码上面加载了XIB之后的故事板。

    我不确定您是否可以从 XIB 跳到故事板的中间,这可能是 Mike 的意思。

    【讨论】:

      【解决方案3】:

      你不能在你的项目中混合使用 xib 和故事板——恐怕这是其中之一。

      【讨论】:

      • 这是错误的。您可以拥有 xib 和故事板。
      猜你喜欢
      • 2014-10-21
      • 2016-10-31
      • 1970-01-01
      • 2015-07-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-10-07
      • 1970-01-01
      相关资源
      最近更新 更多