【发布时间】:2015-11-12 13:25:20
【问题描述】:
现有的 iOS 7+ 应用支持 iPhone 和 iPad。目前,我正在为 iPhone 和 iPad 布局使用两种不同的 Storyboard,效果很好。现在我正在尝试使用自适应大小类将其转换为 One-Storyboard-Layout。
我的问题是,我的 iPhone 和 iPad 布局完全不同。他们不仅使用不同的大小和位置来控制控件,而且还使用了一些完全不同的视图控制器。
两个 Storyboard 都使用 MMDrawerController 作为初始 VC。但是从那里开始,控制流程就不同了。 iPad Storyboard 使用 UISplitViewController 作为所有其他 ViewController 的基础,而 iPhone 使用 UITabBarViewController 代替。
这只是一个区别,但还有其他区别。应该如何在一个 Storyboard 中处理这些差异?为了实现这一点,我必须根据当前的 Size Class 指定不同的 segue。但据我所知这是不可能的。
一些新的 iOS 8 自适应 Segue 的 行为 会因大小类而异,但据我所知,无法为不同的大小类指定不同的 segue。此外,无法根据 Size Class 定义不同的初始 ViewController。
所以问题是:是否可以在一个 Storyboard 中指定两种不同的布局(包括不同的 Segue、ViewController 等)?
切换到单个 Storyboard 的原因是为了支持 iOS 9 中新的分屏和幻灯片功能。根据屏幕大小/大小类别在启动时加载不同的 Storyboard 很容易。但是,当动态更改大小类时,无法在运行时切换到另一个 Storyboard。是吗?
【问题讨论】:
标签: ios iphone ipad uiviewcontroller size-classes