2011-03-15 76 views
14

我無法解決如何在通用應用程序中爲iPad或iPhone加載單獨的XIB。爲iPad或iPhone加載單獨的XIB時遇到問題

它很容易將Xcode項目轉換爲Universal,並具有單獨的主視圖界面。

我的問題是輔助視圖,讓它有iPad和iPhone分開的接口。

請提供任何幫助,因爲我一直在這個問題上工作幾天沒有成功。提前致謝!

回答

32

我知道@ indragie的答案是非常普遍的答案,但這是一個常見的誤解,會導致您比您實際需要做更多的工作。

只要您以某種方式命名xib文件,就會自動爲iPhone或iPad選擇它們。看看我的回答這個同樣的問題在另一篇文章:

iOS: Using device modifiers for loading xib files?

+0

絕對是處理我見過的這個問題的最佳方式! – 2011-03-19 19:43:33

+5

請確保您使用〜ipad而不是〜iPad。後者將在模擬器上工作,但不能在設備上工作。 – 2012-08-29 09:49:05

2

您可以使用UI_USER_INTERFACE_IDIOM()來檢查應用程序是否在iPad或iPhone/iPod touch上運行:

if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad) { 
    // Running on iPad 
} else { 
    // Running on iPhone or iPod touch 
} 

欲瞭解更多有關加載NIB文件,閱讀蘋果筆尖文件的Resource Programming Guide。您可能需要特別檢查以編程方式加載Nib文件部分,其中顯示瞭如何使用NSBundle從代碼中編程加載NIB。然後,您可以將其與上述代碼一起使用,以根據您正在運行的設備正確加載適當的NIB。

+6

-1 iOS SDK提供了一個簡單的命名約定,它將根據設備加載正確的xib文件。你不需要在整個代碼中擴展這個if語句結構。我在下面的答案中描述它。 – 2011-03-19 18:00:43

3

只需添加一個文件的MainView名爲〜ipad.xib使得加載此一個I.S.O.運行在iPad上的MainView.xib ..