补充问题有很多答案,即如何防止在从 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:从紧凑旋转到常规时如何防止扩展,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33151380/
欢迎光临 OStack程序员社区-中国程序员成长平台 (https://ostack.cn/) | Powered by Discuz! X3.4 |