如何将 iPhone/iPad 的故事板迁移到通用故事板?

10

我有一个在Xcode 5中创建的项目。 "部署信息"设置显示设备:通用,但具有单独的iPhone和iPad设置以及相应的iPhone和iPad故事板。

现在我正在使用Xcode 6开发同样的项目,并希望使用一个通用故事板代替两个故事板。 我只在iPhone故事板上工作过,没有碰过iPad故事板。 是否可以放弃iPad故事板,将现有的iPhone故事板转换为我的主要通用故事板?

3个回答

15

我使用了这篇教程和@tharkay的类似解决方案来创建下面的解决方案。

  • Main_iPhone.storyboard重命名为Main.storyboard
  • 删除Main_iPad.storyboard
  • ***如果您想使用iPad storyboard而不是iPhone,请将Main_iPad.storyboard重命名为Main.storyboard并删除Main_iPhone.storyboard文件。然后,您需要转到“文件检查器”,右键单击您的故事板,然后选择“以源代码形式打开”。这将显示所有XML代码。将targetRuntime"iOS.CocoaTouch.iPad"改为"iOS.CocoaTouch"

来自:

targetRuntime="iOS.CocoaTouch.iPad" 

收件人:

targetRuntime="iOS.CocoaTouch"
  • 在项目文件中,进入通用设置,在iPhone和iPad下选择 Main.storyboard

enter image description here

  • Main.storyboard 上,选择右侧面板的 Show the File inspector 图标。

enter image description here

  • 勾选名为 Use Size classes 的框。

enter image description here

  • XCode会提示一个 Xcode 5 兼容性消息,选择 YES。
  • 编译并运行。
  • 当然,你的所有视图都会乱掉,你需要重新做自动布局。

4
在xCode 9中,我还需要在文档标记中添加useTraitCollections="YES"属性(与targetRuntime="iOS.CocoaTouch"所在的位置相同)。

1
我找到了一个简单的解决方案,对我很有效。
从“文件”菜单中复制你的MainStoryboard并将其重命名为MainStoryboard_iPad.storyboard
现在右键点击你的MainStoryboard_iPad文件,然后点击作为源代码打开
你将得到一个XML文档。 现在按照以下方式更改XML文件。
搜索targetRuntime="iOS.CocoaTouch"并将其更改为targetRuntime="iOS.CocoaTouch.iPad"<simulatedScreenMetrics key="destination" type="retina4"/>中删除类型为"retina4"的内容。
<simulatedScreenMetrics key="destination"/>

再次在界面构建器中打开MainStoryboard_iPad文件。

万岁……您将获得iPad版本故事板。现在,您只需要根据您的布局更改宽度和高度即可。

这帮助了我很多,节省了很多时间。: )我相信它也会帮助您!


1
谢谢您的回答。我正在寻找一种将iPhone故事板转换为单个通用故事板的方法,而不是使用两个故事板。 - rmp251
你找到解决方案了吗? - DogEatDog
@DogEatDog - 是的,这对我非常有帮助,省了我1-2天的时间。 :) 你可以自己试试。 - DevdDexter

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接