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中怎么隐藏NavigationBar
如何在调试期间在 iPad 中保持相同的 iPhone 应用程序尺寸
iOS5 Storyboard UIViewController 的故事板调用了哪个init方法?