iPhone 6 Plus 上的 UISplitViewController

UISplitViewController on iPhone 6 Plus

我在 iPhone 和 iPad 上申请了。我有 UISplitViewController 并在 iPad 上使用它。当我在 iPhone 6 Plus(模拟器)上启动我的应用程序时,UISplitViewController 不起作用。 (在 iPad 3 或 iPad Air 2 和 iPhone 5s 上效果很好)。我在我的代码中加入了以下内容。

override func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath){
    if (UIDevice.currentDevice().userInterfaceIdiom == UIUserInterfaceIdiom.Pad) {
        performSegueWithIdentifier("showDetailParse", sender: nil)
    } else if (UIDevice.currentDevice().userInterfaceIdiom == .Phone) {
        performSegueWithIdentifier("showParse", sender: nil)
    }
}

我的 iPad 屏幕效果很好

我的屏幕来自 iPhone 6 Plus(模拟器)

更新: 我更新了我的代码,它定义了它在哪个设备上工作并且它确实工作了!在代码中,我定义了当前设备的高度,如果大于 2000 像素,我使用 segue for iPad。但我不喜欢这个解决方案。有什么想法吗?

我更新后的代码如下。

override func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath){
    var screen = UIScreen.mainScreen().currentMode?.size.height
    if (UIDevice.currentDevice().userInterfaceIdiom == UIUserInterfaceIdiom.Pad) || screen >= 2000 && UIDevice.currentDevice().orientation.isLandscape == true {
        performSegueWithIdentifier("showDetailParse", sender: nil)
    } else if (UIDevice.currentDevice().userInterfaceIdiom == .Phone) {
        performSegueWithIdentifier("showParse", sender: nil)
    }
}

根据我在您提供的屏幕上看到的内容 - 您已将 UITabBarController 嵌入到您的 MasterViewController 中。我以前也这样做过,诀窍是不要忘记你在哪里 推动 - 不在 UINavigationController 因为那不是大师,大师是 UITabBarController.

我这样做了:

self.tabBarController?.performSegueWithIdentifier("showDetail", sender: nil)

这个故事板布局对我来说效果很好: