视图控制器的自适应交换以响应Size Class Trait更改iOS 9

时间:2016-04-28 06:11:51

标签: ios uiviewcontroller autolayout size-classes adaptive-layout

(我已经阅读了关于这个主题的其他答案,但它们指的是较旧的技术和实践。)

我还读过:https://developer.apple.com/library/ios/featuredarticles/ViewControllerPGforiPhoneOS/TheAdaptiveModel.html

我的iOS应用程序有3个页面(每个标签1个)。故事板架构如下:

TabBarController
    -> Navigation Controller 1 -> View Controller 1
    -> Navigation Controller 2 -> View Controller 2
    -> Navigation Controller 3 -> View Controller 3

该应用程序在小型设备(例如iPhone肖像)和大型设备(例如iPad全屏)上使用时具有主要的UI设计差异。基本架构保持不变,但每个视图控制器需要显示一组非常不同的UI元素。

我可以通过根据大小等级安装和卸载元素以及自动布局约束来响应Interface Builder中的大小更改,但这将非常笨拙和脆弱。

在过去的日子里(〜2014年),Apple的建议是:

如果要根据设备是纵向还是横向显示不同的数据,则执行此操作的方法是使用两个单独的视图控制器。一个视图控制器应该管理主要方向(通常是纵向)的数据显示,而另一个视图控制器管理备用方向的数据显示。

尽管尺寸类已经出现,但这仍然是我特定设计的最佳解决方案(记得采用尺寸类和拆分视图,插入帐户。)

问题1 :我应该在应用中的哪个位置检测到特征变化?

问题2 :(假设我已经从故事板加载了备用视图控制器)以响应特征变化,我应该如何最好地转换/呈现备用视图控制器?

0 个答案:

没有答案