补充问题有很多答案,即如何防止在从 Regular
到 Compact
界面更改时过渡到 PrimaryOverLay
, 例如使用
func splitViewController(splitViewController: UISplitViewController, collapseSecondaryViewController secondaryViewController: UIViewController, ontoPrimaryViewController primaryViewController: UIViewController) -> Bool
在我的例子中,我有一部 iPhone 6+,细节 View 以纵向显示。当我将设备旋转到水平位置(Compact
到 Regular
)时,我希望主视图保持隐藏状态。我试过在很多地方将 preferredDisplayMode
设置为 .PrimaryHidden
,但没有明显的影响。谷歌搜索一无所获。
最佳答案
好吧,在我写完问题后,但在发布之前,我绊倒了 possible solution ,这是为了覆盖 Split View Controller 引用的特征集合。
我采纳了这个想法并决定将 UISplitViewController
子类化,并覆盖 traitCollection
属性。成功了:
final class MySplitViewController: UISplitViewController {
var didOnce = false
override var traitCollection: UITraitCollection {
let old = super.traitCollection
let change = UITraitCollection(horizontalSizeClass: .Compact)
let new = UITraitCollection(traitsFromCollections: [old, change])
return new
}
显然,这是针对一台设备进行的硬编码 - 稍后我将添加一些可用于控制实际返回内容的函数。
关于ios - UISplitViewController:从 Compact 旋转到 Regular 时如何防止扩展,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33151380/