2014-10-09 82 views
1

我正在創建一個iOS 8應用程序。我有兩個iPhone和iPad的故事板。 iPad.storyboard被設置爲主界面。 我的問題是,每次我在iPhone設備上運行時,iPad.storyboard仍在被調用。iOS 8故事板/主界面

有沒有辦法自動檢測某個設備的故事板?

+0

http://stackoverflow.com/questions/21306597/ios-logic-to-detect-ipad-iphone-device-for-storyboard – ytbryan 2014-10-09 02:21:28

+0

我使用的是Swift。您提供的線程是針對iOS 7的。謝謝。 – user3300758 2014-10-09 02:42:11

+0

我明白了。 http://stackoverflow.com/a/26269486/388280 – ytbryan 2014-10-09 02:46:57

回答

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 
    } 
+0

但是,我擔心的是,即使我在iPhone上運行,被調用的設計是從iPad.storyboard而不是iPhone.storyboard。爲了清楚這一點,有沒有一種方法來以編程方式設置主界面?謝謝。 – user3300758 2014-10-09 02:59:15

+0

然後你可以加載不同的故事板。往上看。 – ytbryan 2014-10-09 03:18:05

0

爲了讓iOS系統自動爲您選擇,名稱將使用〜iphone和〜末ipad的故事板

例如(後名和擴展名之前。):
主要〜 iphone.storyboard main〜ipad.storyboard

請注意,「iphone」和「ipad」必須小寫。如果你用混合大小寫命名它們,它們將在模擬器上工作,但不是設備,因爲Mac的默認格式不區分大小寫,但iOS格式區分大小寫。

+0

我試圖重命名我的故事板到主〜iphone.storyboard和主〜ipad.storyboard,但沒有任何反應。 – user3300758 2014-10-09 04:53:06