在我的应用程序中,当在小型设备(例如 iPhone 纵向)和大型设备(例如 iPad 全屏)上使用时,大多数视图在 UI 设计上存在重大差异。基本架构保持不变,但每个视图控制器都需要显示一个非常不同的 UI 元素集。
我可以通过根据尺寸等级安装和卸载元素以及自动布局约束来响应 Interface Builder 中的尺寸变化,但这将非常笨拙和脆弱。
在过去(~2014 年),Apple 的建议是:
如果您想根据设备是纵向还是横向显示相同的数据,方法是使用两个单独的视图控制器。一个视图控制器应该管理数据在主要方向(通常是纵向)上的显示,而另一个视图控制器管理数据在备用方向上的显示。
尽管出现了 Size Classes,但我觉得这仍然是我特定设计的最佳解决方案(记住要考虑 size classes 和 split-view、slide-in。)
问题 1:我应该在我的应用程序中的什么时候检测特征变化?
问题 2:(假设我已经从情节提要加载了备用视图控制器)以响应特征更改,我应该如何最好地转换/呈现备用视图控制器?
我在这里问同样的问题:Adaptive swapping of View Controllers in response to Size Class Trait changes iOS 9
因为没有人回答最初的问题。