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

具体来说:

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


当前回答

对于 Xcode10

复制Main.storyboard 然后将文件重新命名为Main_iPad。storyboard和main_iphone。storyboard 在.plist中设置适当的名称

4.只需选择适当的.storyboard进行配置

其他回答

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

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

谢谢大家的回答。

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

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

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

我只是改变了(另外从@tharkay的答案):

 <device id="ipad9_7" orientation="landscape">

效果很好!

我在XCode 8.3.3中使用了这个

当我昨天遇到同样的问题时,我关注了这个帖子。我遵循的步骤

For Xcode 5.1, I had to do some cleanup of iPhone storyboard like missing reuseIdentifiers of Table cells, provide story board id for every controller, remove unused scenes. Copy MainStoryboard_iPhone.storyboard to MainStoryboard_iPad.storyboard. Using vi editor - changed targetRuntime="iOS.CocoaTouch" to targetRuntime="iOS.CocoaTouch.iPad" Change the code in the MainStoryboard_iPad.storyboard from: <simulatedScreenMetrics key="destination" type="retina4"/> to <simulatedScreenMetrics key="destination"/> Open the project in Xcode. Changed the Deployment devices to Universal - Chose the option of NOT copying the iPhone Storyboard. Xcode will default the Deployment Target to 7.1, took care of the deprecated functions. To fix the misplaced view error in iPad Storyboard - Changed the Frame Layout for Controllers giving errors.

就是这样。谢谢你的帮助。

这个功能现在是内置的。例如,如果将“部署信息->设备”中的项目设置从iPhone更改为Universal,则会出现以下对话框: