【问题标题】:Objective-C, Transitioning from .nib to .storyboardObjective-C,从 .nib 过渡到 .storyboard
【发布时间】:2015-03-28 02:43:11
【问题描述】:

我正在尝试将我的应用程序从使用 .nibs 更新为 OS X 上更新的 .storyboard 格式。我不确定实现这一目标的最佳方法是什么。

目前我的项目中有旧的MainMenu.nibMain.Storyboard。我很容易手动将项目从.nib 复制到.storyboard,尽管我如何告诉XCode 开始使用我的.storyboard 而不是.nib?是否可以在同一个项目中同时使用两者?欢迎提出任何建议。

【问题讨论】:

  • 也可以同时使用。当我开始新模块时,我只是开始使用故事板而不是使用 .xib 文件创建类。在某些时候,如果您想重构整个初始流程并用情节提要流程替换现有的 xib,您可能必须执行以下建议的答案。同时,您可以使用故事板、segues 以及它们附带的所有好东西以及 xibs。只要确保使用 [[UIStoryboard storyboardWithName:name bundle:nil] instantiateViewControllerWithIdentifier: ] 而不是 alloc/init 来启动你的控制器。
  • @mitrenegade,谢谢 - 我只使用了 nib 和 xib,所以我需要对结构进行一些调整来适应。故事板似乎是一个很好的概念,可以延续到 osx 上。

标签: xcode cocoa storyboard nib


【解决方案1】:

虽然我如何告诉 XCode 开始使用我的 .storyboard 而不是 .nib?

如果您根本不想再使用 MainMenu.nib,则在 Info.plist 中设置 NSMainStoryboardFile 键(并删除 NSMainNibFile钥匙)。这样,故事板文件就会在启动时使用。

Info.plist 键记录在这里:

https://developer.apple.com/library/mac/documentation/General/Reference/InfoPlistKeyReference/Articles/CocoaKeys.html

https://developer.apple.com/library/mac/documentation/General/Reference/InfoPlistKeyReference/Articles/GeneralPurposeKeys.html

【讨论】:

  • 感谢您的信息 - 关于nibsstoryboards 结构的一个问题。在我的nib 中,objects 位于顶层(不在任何窗口控制器或视图控制器内),多个窗口和视图可以轻松访问它们。我注意到当将现有的 nib 视图移动到他们的新故事板视图控制器主页时,他们无法访问视图控制器之外的对象。这是正常的吗?有没有办法让不同视图控制器中的多个视图访问同一个对象?
  • 你是对的,有很多新的方式来构建你必须习惯的 IB 资料。我在 ios dev 工作,所以我不确定是否可能存在细微差别。一个问题是,你的笔尖顶层有什么样的物体?如果有的话,我认为您可以在多个笔尖之间的情节提要中以控制器的形式共享更多对象。您可能想要查看容器视图 - 您基本上将子视图设置为容器视图,并将这些视图连接到共享对象的控制器作为“嵌入”segue。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2016-03-11
  • 2012-04-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-12-21
  • 1970-01-01
相关资源
最近更新 更多