在通用应用程序中,我无法找到始终(且仅)显示主 Controller 的方法,即使在横向旋转的 iPhone 6 Plus 上也是如此。
我想实现的是看到 UISplitViewController 只在 iPad 上运行,而不是在 iPhone 上运行,不知道是否可行
委托(delegate)方法没有帮助:
func splitViewController(svc: UISplitViewController, shouldHideViewController vc: UIViewController, inOrientation orientation: UIInterfaceOrientation) -> Bool {
return false
}
func splitViewController(splitViewController: UISplitViewController, collapseSecondaryViewController secondaryViewController: UIViewController, ontoPrimaryViewController primaryViewController: UIViewController) -> Bool {
return true
}
最佳答案
您需要重写 UISplitViewController 的特征集合,以始终拥有紧凑的尺寸类。为此,您需要插入一个容器 View Controller 作为 UISplitViewController 的父级:
- 将您的 UISplitViewController 嵌入到 ContainerViewController 中
将以下代码添加到您的容器 View Controller 子类中以覆盖您的 subview Controller 的特征集合:
class ContainerVC: UIViewController { override func viewDidLoad() { super.viewDidLoad() } override func viewWillTransitionToSize(size: CGSize, withTransitionCoordinator coordinator: UIViewControllerTransitionCoordinator) { performOverrideTraitCollection() } private func performOverrideTraitCollection() { for childVC in self.childViewControllers { setOverrideTraitCollection(UITraitCollection(horizontalSizeClass: .Compact), forChildViewController: childVC) } }}
关于ios - 强制 UISplitViewController 始终(仅)横向显示 master(在 iPhone 6 Plus 上),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35705865/