ios - UISplitViewController - 防止在 iPhone 6 plus 上横向拆分

标签 ios uisplitviewcontroller iphone-6-plus

我在我的应用程序中使用 UISplitViewController。这在 iPad 上工作得很好,其中主要和次要始终可见,并且在大多数 iPhone 上工作得很好,它就像一个 UINavigationController。

在 iPhone 6+ 和 6S+ 上, Split View在竖屏时像 iPhone,在横屏时像 iPad。这种景观 split 给我带来了问题,我想避免它。

有什么方法可以防止 UISplitViewController 在 iPhone 6+ 横向显示主要和次要 Controller 吗?我只希望它显示辅助 Controller ,就像其他 iPhone 一样。

谢谢。

最佳答案

我能够通过子类化 UISplitViewController 然后覆盖特征集合以在设备不是 iPad 时返回紧凑的水平尺寸类来做到这一点。我知道现在检查界面惯用语是一种失礼,但我不确定还能怎么做。

我只是将这个方法添加到我的 UISplitViewController 子类中:

-(UITraitCollection *)traitCollection {
    if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad) {
        return [super traitCollection];
    } else {
        return [UITraitCollection traitCollectionWithHorizontalSizeClass:UIUserInterfaceSizeClassCompact];
    }
}

当然欢迎任何关于更好的方法的建议。

关于ios - UISplitViewController - 防止在 iPhone 6 plus 上横向拆分,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37951008/

相关文章:

ios - 使用 viewWillTransition 更改方向时更改 UILabel.frame

ios - ARKit 将节点放置在手指按下的位置

objective-c - 关于 UISplitViewController 中详细 View 的问题

iOS 8 AutoLayout ScrollView 在 iPhone 6 plus 上水平滚动

ios - iPhone 6 plus 设计分辨率

ios - ios 中的推送通知 - 角标(Badge)和横幅显示不同的请求

iphone - 在 XCode 5 中将项目导入远程 SVN 服务器

ios - 在启动时显示主视图,在 "slide over"上显示详细 View

ios - 如何从 DetailViewController 重新加载 MasterView Controller TableView

ios - 如何以编程方式检测 iPhone 6 & 6 Plus 查看模式