Ios5 如何将iPhone应用程序移植到iPad(故事板)

Ios5 如何将iPhone应用程序移植到iPad(故事板),ios5,migration,port,storyboard,universal,Ios5,Migration,Port,Storyboard,Universal,我刚刚完成了我的iPhone应用程序,我想让它具有通用性。我已经读了一些帖子,但它们有点老了(2010年左右) 我得到的: 简单的iPhone应用程序,最近创建的(iOS 5-情节提要),有三个屏幕 我的应用程序代表一张有三张卡片的桌子,你可以通过触摸它们来翻转。用户可以输入(在第二个屏幕上)要在卡片上显示的文本 当我创建这个项目时,我选中了“Universal”,所以我有两个故事板。此后,我所做的一切都与iPad无关(除了我在“联系支持”电子邮件选项中使用UIModalPresentatio

我刚刚完成了我的iPhone应用程序,我想让它具有通用性。我已经读了一些帖子,但它们有点老了(2010年左右)

我得到的:

  • 简单的iPhone应用程序,最近创建的(iOS 5-情节提要),有三个屏幕
  • 我的应用程序代表一张有三张卡片的桌子,你可以通过触摸它们来翻转。用户可以输入(在第二个屏幕上)要在卡片上显示的文本
  • 当我创建这个项目时,我选中了“Universal”,所以我有两个故事板。此后,我所做的一切都与iPad无关(除了我在“联系支持”电子邮件选项中使用UIModalPresentationPageSheet的一行)
我想完成的事情:

  • iPad上的同一个应用程序:我的应用程序非常简单,不需要分割视图或细节。我只想要相同的对象和布局,但要有更大更好的图形(桌子、卡片等)
我喜欢它,因为它是一个很好的入门级迁移

我不知道从哪里开始。当我运行iPad模拟器时,会出现一个白色屏幕,就是这样。

好了,这就完成了

与几乎所有的事情一样,一旦你知道该做什么,这是非常容易的

我想说的是,对于像我这样的情况,UI的变化不超过大小或(x,y)坐标,这个过程可以总结如下:

  • 复制iPad故事板上的每个UI元素(复制和粘贴即可),并根据需要调整位置和大小
  • 把所有东西都重新接线。每个按钮、segue(您还必须再次添加segue名称)等等
  • 在代码中验证用户界面受影响的每个位置(例如x、y坐标),确定应用程序是否在iPhone或iPad上运行,并相应地划分代码
  • 如果你对应用程序有任何本地化,你必须更新iPad情节提要上的新UI元素
  • 选择要在模拟器上进行测试的目标并进行尝试
  • 要确定应用程序正在哪个设备上运行,您可以使用以下选项:

    if(UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad) {
        //I'm running on the iPad
    } else {
        //I'm running on the iPhone
    }
    
    就这样。同样,在像我这样的简单例子中,代码的重用是绝对的(100%),您必须添加的新代码是最少的(基本上如果需要语句的话),UI元素的复制就像复制和粘贴一样简单


    我希望这对其他人有用,如果你有改进的建议,他们会非常欢迎。

    如果你只是想重复使用你的iphone故事板,只需转到你的项目设置。在目标选项卡信息中,有行“主情节提要文件库名称”和“主情节提要文件库名称(iPad)”。只需编辑一个iPad,使其与另一个具有相同的值。在我的例子中,我必须将其编辑为“主情节提要文件基本名称(iPad)”,值为“MainStoryboard\u iPhone”。

    在finder中打开情节提要文件,复制iPhone情节提要并将其重命名为Main-iPad.storyboard

    在xCode内部,右键单击情节提要->“打开为”->“源代码”

    搜索targetRuntime=“iOS.CocoaTouch”并使其成为targetRuntime=“iOS.CocoaTouch.iPad”

    现在保存所有内容并重新打开Xcode->iPad情节提要包含与iPhone文件相同的内容,但每次都可能会被打乱,您必须自行安排

    最后,要获得iPad格式,还需要将MainstryBoard_iPad.storyboard中的代码从:更改为


    然后转到“StroryBoardEx Info.plist”文件,搜索“主nib文件基本名称(iPad)”并将其设置为“主iPad.storyboard”

    Erm。。。编辑iPad情节提要是一个很好的开始。那么对于你的iPad版本,你需要重新制作整个情节提要并重新使用代码吗?再次添加按钮、标签和每个UI元素,并将它们与您当前的方法连接起来?是的,iPhone和iPad平台非常非常逼真。除了少数例外情况外,您应该能够做到这一点没有问题。在我的情况下,将UIButtons连接到新故事板所需的唯一一件事就是添加“IBOutlet”声明。-这不是解决这个问题的最好办法吗?可能引入错误/未更新UI元素、错误命名等的可能性似乎很大:(请参阅此答案(这是关于此问题的评论之一,但实际上是隐藏的)将设备设置为universal,这将非常有效(如果您的autolayout是正确的)