补充问题有很多答案,即如何防止在从 Regular 到 Compact 界面更改时过渡到 PrimaryOverLay ,例如使用
func splitViewController(splitViewController: UISplitViewController, collapseSecondaryViewController secondaryViewController: UIViewController, ontoPrimaryViewController primaryViewController: UIViewController) -> Bool
就我而言,我有一部 iPhone 6+,其详细 View 以纵向显示。当我将设备旋转到水平位置时(Compact 到 Regular ),我希望主视图保持隐藏状态。我尝试在很多地方将 preferredDisplayMode 设置为 .PrimaryHidden ,但没有明显影响。谷歌搜索一无所获。
Best Answer-推荐答案 strong>
好吧,在我写完问题之后,但在发布之前,我绊倒了 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:从紧凑旋转到常规时如何防止扩展,我们在Stack Overflow上找到一个类似的问题:
https://stackoverflow.com/questions/33151380/
|