iPhone 6 Plus上的UISplitViewController

时间:2015-07-03 10:46:32

标签: swift interface uisplitviewcontroller 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的屏幕效果很好 enter image description here

我的iPhone 6 Plus屏幕(模拟器) enter image description here

更新: 我更新了我的代码,它定义了它工作的设备,它确实有效!在代码中我定义了当前设备的高度,如果大于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)
    }
}

1 个答案:

答案 0 :(得分:2)

从我在您提供的屏幕上看到的内容 - 您在MasterViewController中嵌入了UITabBarController。我之前也这样做了,诀窍是不要忘记你推动 - 不在UINavigationController,因为那不是主人,主人是UITabBarController

我这样做了:

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

这对于我的故事板布局非常有用:

enter image description here