iPhone Plus:为什么UISplitViewController在横向显示两个控制器?

时间:2018-04-06 10:34:17

标签: ios uisplitviewcontroller landscape iphone-6-plus

我正在使用带有这些值的UISplitViewController:

    splitViewController.preferredPrimaryColumnWidthFraction = 0.4
    splitViewController.minimumPrimaryColumnWidth = 320
    splitViewController.maximumPrimaryColumnWidth = 1000
  • 在横向 iPhone 6 上,UIViewController仅显示1个控制器
  • 在横向 iPhone 6 Plus 上,UIViewController显示两个控制器

我无法理解为什么。

鉴于两种设备的屏幕尺寸:

    iPhone 6:      375 x 667
    iPhone 6 Plus: 414 x 736

736 x 0.4 = 294.4 ,仍然小于 320

为什么它会在iPhone Plus的环境中显示两个控制器?

更新:

看起来preferredPrimaryColumnWidthFractionminimumPrimaryColumnWidth与导致拆分的阈值宽度无关。它们只是定义了第一个控制器的宽度,以防两个控制器都显示出来。

我现在正在寻找一种方法来防止iPhone Plus上的分割,因此它的行为与iPhone非Plus相同。

1 个答案:

答案 0 :(得分:0)

请检查一下。 需要全屏。在状态栏样式下面。 enter image description here

另一种方式:

首先在不同设备上检查您当前的模式。

- (void)splitViewController:(UISplitViewController *)splitViewController willChangeToDisplayMode:(UISplitViewControllerDisplayMode)displayMode {
  if (displayMode == UISplitViewControllerDisplayModePrimaryHidden) {
       NSLog(@"Detail view is visible");
} else if (displayMode == UISplitViewControllerDisplayModeAllVisible) {
       NSLog(@"both are visible");
  }
}

然后设置您的require preferredMode。