我有一个iPhone应用程序,它有一个故事板。现在我还想提供一个iPad应用程序。我问自己是否有一个函数可以帮助我将iPhone的故事板转换成iPad的故事板。

具体来说:

是否有类似的功能,还是只有手动的方式?


当前回答

There is a really simple solution for Xcode versions that support size classes (Tested in Xcode 7 which is the current version at the time of writing). Check the "use size classes" checkbox on a storyboard file (File Inspector), confirm that dialog that appears. Then uncheck that same checkbox - Xcode will ask you if you want to use this storyboard with an iPhone or iPad, and convert the screens in it appropriately. No need to directly edit the storyboard file. For both iPad and iPhone, just copy the same storyboard and configure one for iPad and one for iPhone using the described method.

在有人建议使用大小类之前——虽然很好,但对于重度定制的UI,比如游戏等,它们不太方便

其他回答

进入目标摘要,将设备更改为通用, 然后向下设置iPad版本为任何你喜欢的故事板,包括一个复制和重命名一个如果你喜欢。

对于那些可能对我的观点有异议的人,我想简短地提醒一下:

我的问题:

故事板内容很好地复制到我添加的新板文件中。但是,它不会将更改转移到我配备的iPad上。注意到我必须为构建目标切换指定的故事板(见图),让更改显示出来。

如果我有点,我会张贴一个图像,但设置位于:

左侧源菜单上的项目导航器,项目的根目标(中心窗格)一般选项卡,(第二子标题)部署信息,选择iPad按钮选项卡。

从那里,在“主界面”下选择你的故事板。

谢谢你的帖子,我希望这能帮助你解决问题。

这是另一种方式,但我能够做一个全选&复制在我的iPad故事板(~35个场景),并粘贴到我的iPhone故事板。场景大小自动调整。我只看到了两个问题,我必须替换UISplitViewController(因为它只是iPad),默认背景变成透明而不是灰色(仍在正确地修复这个问题,无需手动设置所有背景)。

编辑:在属性检查器中UITableView的默认背景似乎很奇怪。对于分组的表视图,我必须手动设置背景为“组表视图背景色”,对于非分组的表视图,我必须手动设置背景为“白色”。然后它被显示为“Default”(我假设它匹配了一个硬编码的值)。实际上,更简单的是,从“分组”切换到“静态”,然后再切换回来似乎会重置默认颜色。

只是为了好玩,在XCode 5.1和iOS 7.1上,我还需要改变“toolVersion”和“systemVersion”的值:

toolsVersion="5023" systemVersion="13A603"

如果没有这个,新的故事板文件将无法编译

谢谢大家的回答。

我遵循了上述步骤,但当我在模拟器或iPad下运行应用程序时,它只使用iPhone故事板继续运行。

由于某种原因,当我将目标设备改为Universal而不是iPhone时,Xcode (v5.0)没有更新app-Info。plist文件来包含iPad故事板,所以我必须手动添加以下条目(使用Xcode中的plist编辑器):

主故事板文件基名(iPad) ==> MainStoryboard_iPad