iPhone IOS5 Storyboard,如何加载带有自定义 .xib 文件的 UIViewController?

Posted

技术标签:

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

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

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

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

感谢任何帮助!

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

【问题讨论】:

【参考方案1】:

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

- (id)instantiateViewControllerWithIdentifier:(NSString *)identifier

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

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

【讨论】:

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

Mike K 的回答是错误的。

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

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

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

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

【讨论】:

【参考方案3】:

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

【讨论】:

这是错误的。您可以拥有 xib 和故事板。

以上是关于iPhone IOS5 Storyboard,如何加载带有自定义 .xib 文件的 UIViewController?的主要内容,如果未能解决你的问题,请参考以下文章

使用 ios5 和 storyboard 展示视图控制器

iOS5 storyboard中怎么隐藏NavigationBar

如何在调试期间在 iPad 中保持相同的 iPhone 应用程序尺寸

iOS5 Storyboard UIViewController 的故事板调用了哪个init方法?

如何使用Storyboard创建UIPageViewController

当iPhone锁定在iOS5上时,如何防止应用程序被发送终止信号?