我正在創建一個iOS 8應用程序。我有兩個iPhone和iPad的故事板。 iPad.storyboard被設置爲主界面。 我的問題是,每次我在iPhone設備上運行時,iPad.storyboard仍在被調用。iOS 8故事板/主界面
有沒有辦法自動檢測某個設備的故事板?
我正在創建一個iOS 8應用程序。我有兩個iPhone和iPad的故事板。 iPad.storyboard被設置爲主界面。 我的問題是,每次我在iPhone設備上運行時,iPad.storyboard仍在被調用。iOS 8故事板/主界面
有沒有辦法自動檢測某個設備的故事板?
//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
}
但是,我擔心的是,即使我在iPhone上運行,被調用的設計是從iPad.storyboard而不是iPhone.storyboard。爲了清楚這一點,有沒有一種方法來以編程方式設置主界面?謝謝。 – user3300758 2014-10-09 02:59:15
然後你可以加載不同的故事板。往上看。 – ytbryan 2014-10-09 03:18:05
爲了讓iOS系統自動爲您選擇,名稱將使用〜iphone和〜末ipad的故事板
例如(後名和擴展名之前。):
主要〜 iphone.storyboard main〜ipad.storyboard
請注意,「iphone」和「ipad」必須小寫。如果你用混合大小寫命名它們,它們將在模擬器上工作,但不是設備,因爲Mac的默認格式不區分大小寫,但iOS格式區分大小寫。
我試圖重命名我的故事板到主〜iphone.storyboard和主〜ipad.storyboard,但沒有任何反應。 – user3300758 2014-10-09 04:53:06
http://stackoverflow.com/questions/21306597/ios-logic-to-detect-ipad-iphone-device-for-storyboard – ytbryan 2014-10-09 02:21:28
我使用的是Swift。您提供的線程是針對iOS 7的。謝謝。 – user3300758 2014-10-09 02:42:11
我明白了。 http://stackoverflow.com/a/26269486/388280 – ytbryan 2014-10-09 02:46:57