ios - 强制 UISplitViewController 始终(仅)横向显示 master(在 iPhone 6 Plus 上)

标签 ios iphone swift ipad uisplitviewcontroller

在通用应用程序中,我无法找到始终(且仅)显示主 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 的父级:

  1. 将您的 UISplitViewController 嵌入到 ContainerViewController 中
  2. 将以下代码添加到您的容器 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)
        }
    }}
    

Building Adaptive Apps with UIKit (WWDC 2014) 中有很好的解释

关于ios - 强制 UISplitViewController 始终(仅)横向显示 master(在 iPhone 6 Plus 上),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35705865/

相关文章:

ios - 我想从 swift4.0 中的数组中提取 District_NameEng (字典值)

swift - 在 for 循环中更改 SKNode 子节点的属性

swift - 带有 Xib 错误的 UItableView 部分标题 View - Swift

ios - 未检测到按钮操作

ios - 带有 UIImage 或远程 URL 的 UNNotificationAttachment

iphone - 表格 View 单元格 附件类型 自定义位置的复选标记

ios - iOS 上的 Firebase 实时 : Cannot access Realtime Database

iphone - 消除模态视图层次结构——一个优雅的解决方案

ios - RubyMotion 和指针

ios - 奇怪的游戏中心行为?