我正在使用
详细视图控制器是一个
我不想仅仅检查设备的方向,因为我希望使用大小类和特征,以便应用程序也可以在iPhone等设备上工作(当遇到相同的特征时)。
我知道每个视图控制器都有一个
如果iPad是竖屏,我会期望这样,但即使它最初是横屏,也会打印出此结果 - 尽管我希望横向和纵向大小类的方向分别为
此外,如果我在视图控制器中实现了
因此,我的问题是如何检测分割视图控制器内的视图控制器中的大小类/特征更改...或者我做错了什么?
对于任何响应中的示例代码,该应用程序使用Swift编写,目标iOS 9。
感谢您提前给予的任何帮助!
UISplitViewController
设计一个iPad应用程序。我已经配置了UISplitViewController
,以使主视图控制器(即左侧较窄的视图)始终可见,通过splitViewController.preferredDisplayMode = .AllVisible
。详细视图控制器是一个
UICollectionView
,我想根据iPad是横屏还是竖屏更改其显示方式。如果是竖屏,我将使集合视图仅显示单列(类似于UITableView
)。如果是横屏,有更多的水平屏幕空间可用,那么我将显示多个列。我认为我可以通过实现该集合视图的数据源和委托中的一些条件语句来完成此操作。我不想仅仅检查设备的方向,因为我希望使用大小类和特征,以便应用程序也可以在iPhone等设备上工作(当遇到相同的特征时)。
我知道每个视图控制器都有一个
traitCollection
属性,但无论iPad的初始方向如何,当我在viewDidAppear
方法中打印出此属性时,它总是指示视图控制器为_UITraitNameHorizontalSizeClass=紧凑,_UITraitNameVerticalSizeClass=常规
。如果iPad是竖屏,我会期望这样,但即使它最初是横屏,也会打印出此结果 - 尽管我希望横向和纵向大小类的方向分别为
常规
和常规
。此外,如果我在视图控制器中实现了
traitCollectionDidChange:
方法,则永远不会在旋转时或甚至在展开详细视图控制器的“展开”按钮被点击以隐藏主视图控制器(并将详细视图控制器成为全屏)时调用它。因此,我的问题是如何检测分割视图控制器内的视图控制器中的大小类/特征更改...或者我做错了什么?
对于任何响应中的示例代码,该应用程序使用Swift编写,目标iOS 9。
感谢您提前给予的任何帮助!