Ios 我们是否需要为通用应用程序使用2个故事板?

Ios 我们是否需要为通用应用程序使用2个故事板?,ios,storyboard,ios-universal-app,Ios,Storyboard,Ios Universal App,我有一个iPhone和iPad的项目。iPad需要一个分割视图控制器。我们是否创建两个独立的故事板?一个用于iPhone(使用autolayout,我们可以支持所有设备),两个用于iPad。我怀疑的是,这只是在最初的观点上的区别。内部视图重复出现。您的故事板使用方法如何?在iOS 8中不再需要两个故事板!我们可以使用AdaptiveUI来定制相同的故事板——所有不同尺寸的iPad和iPhone 你可以在这里找到一个很好的教程 此外,你还可以在WWDC会议上找到苹果公司的一段精彩视频,并搜索“使用

我有一个iPhone和iPad的项目。iPad需要一个分割视图控制器。我们是否创建两个独立的故事板?一个用于iPhone(使用autolayout,我们可以支持所有设备),两个用于iPad。我怀疑的是,这只是在最初的观点上的区别。内部视图重复出现。您的故事板使用方法如何?

在iOS 8中不再需要两个故事板!我们可以使用AdaptiveUI来定制相同的故事板——所有不同尺寸的iPad和iPhone

你可以在这里找到一个很好的教程

此外,你还可以在WWDC会议上找到苹果公司的一段精彩视频,并搜索“使用UIKit构建自适应应用程序”

基本上,我们可以通过在故事板中为不同大小的类定义UI元素来处理不同的屏幕大小。我们还可以为不同大小的类定义不同的自动布局约束

这些都是iOS 8中可能的大小类(我从


在iOS 8上,您不需要两个故事板,因为一个故事板可以同时处理iPhone和iPad;此外,该操作系统上的手机支持UISplitViewController


对于iOS的早期版本,您需要两个故事板。

对于iOS 7及之前的版本,可以使用两个故事板和两个完全不同的界面,因为iPhone上没有拆分视图控制器


对于iOS 8,使用一个故事板,并在iPad和iPhone上使用UISplitViewController。从Xcode 6 Master Detail应用程序模板的通用版本创建一个新项目,以了解其工作原理!它在iPad上是一个自动分割视图控制器,在iPhone上是一个导航界面。

你可以有更多的故事板。如果您无法使用大小类/自动布局来完成iPhone和iPad之间共享的视图控制器的工作,您可以将该部分拆分为单独的故事板。然后,可以创建第三个情节提要,其中包含共享的视图控制器。然后,您可以在代码中实例化该情节提要,并使用它来实例化其视图控制器。

我在iOS7和iPhone上通过调用不同的segue实现了该场景(在一个通用情节提要中拆分控制器,该情节提要可在iOS8和iOS7上工作)。 我的场景是这样的:

我有一个登录控制器,应该是一个主控制器(modally)

在iOS8或iPad上,我使用一个segue指向分割视图控制器,而在iOS7 iPhone上,我使用另一个segue直接指向分割控制器的左导航控制器(完全绕过它)

如果从左边的控制器有一个指向右边导航控制器的细节序列(你应该),如果序列类型是“Show detail”(应该),那么它将像iOS7 iPhone环境中的常规推送一样执行(这正是我们想要的)

不过我注意到,在IOS7 iPhone场景中,segue的目标控制器的细节变成了右导航的根视图控制器(即使segue指向导航),因此,如果您在
prepareforsgue
中有一些代码,您可能需要对其进行调整,以不同的方式处理它们)

(为了确定平台是否为IOS8,以及我是否使用iPhone/iPad习惯用法,我使用标准

[[[UIDevice currentDevice] systemVersion] floatValue] >= 8.0 and UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPhone)

即使使用自适应UI,我个人也更喜欢在不同的故事板上工作。对于复杂的布局,这种方式更容易,并且不会轻易破坏其他屏幕大小的布局。约束过多会使维护变得更困难。此外,移动对象层次结构也会破坏其他屏幕的布局


作为奖励,如果您使用MacBook air或old mac等低级mac,那么在使用情节提要时,它还可以减少加载时间,并获得更好的响应能力。

下面是我的示例,演示了如何在代码中构建iOS 8的全部内容,如果您不想使用情节提要:感谢链接!