我正在创建一个iOS 8应用。我有两个适用于iPhone和iPad的故事板。 iPad.storyboard被设置为主界面。 我的问题是,每次我在iPhone设备上运行时,iPad.storyboard仍然被调用。
有没有办法自动检测某个设备的故事板?
答案 0 :(得分:0)
//If you are looking for a swift solution
if(UIDevice.currentDevice().userInterfaceIdiom == UIUserInterfaceIdiom.Pad) {
//iPad
var iPadBoard: UIStoryboard!
iPadBoard = UIStoryboard(name: "iPad", bundle: nil)
let viewcontroller : UIViewController = iPadBoard.instantiateViewControllerWithIdentifier("iPad") as UIViewController
self.window!.rootViewController = viewcontroller
}
else {
//iPhone
var iPhoneBoard: UIStoryboard!
iPhoneBoard = UIStoryboard(name: "iPhone", bundle: nil)
let viewcontroller : UIViewController = iPhoneBoard.instantiateViewControllerWithIdentifier("iPhone5") as UIViewController
self.window!.rootViewController = viewcontroller
}
答案 1 :(得分:0)
要让iOS自动为您选择,请在末尾(在名称之后和扩展名之前)使用~iphone和~ipad命名故事板。
例如:
主要〜iphone.storyboard
主〜ipad.storyboard
请注意" iphone"和" ipad"一定是小写的。如果用混合大小写命名它们,它们将在模拟器上工作,但不能在设备上工作,因为Mac的默认格式不区分大小写,但iOS格式区分大小写。