我在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)
}
}
答案 0 :(得分:2)
从我在您提供的屏幕上看到的内容 - 您在MasterViewController中嵌入了UITabBarController
。我之前也这样做了,诀窍是不要忘记你推动 - 不在UINavigationController
,因为那不是主人,主人是UITabBarController
我这样做了:
self.tabBarController?.performSegueWithIdentifier("showDetail", sender: nil)
这对于我的故事板布局非常有用: