您可以使用設備修飾符(即〜ipad)在Info.plist中提供特定於設備的按鍵,並指定特定於設備的啓動圖像(iPhone的Default.png和iPad的Default〜ipad.png , 例如)。在Apple Docs中特別提到了這兩件事,但他們並沒有說這對任何其他類型的文件都有效。iOS:使用設備修飾符來加載xib文件?
我發現(非常偶然),這適用於通過initWithNibName:bundle:
加載.xib文件。因此,例如,我可以有MyView.xib和MyView的〜ipad.xib,而這種代碼:
MyViewController *viewController = [[MyViewController alloc]
initWithNibName:@"MyView" bundle:nil];
...將完全加載MyView的〜ipad.xib在iPad上,並MyView.xib上的其它設備。
所以,1)這是否記錄在某處?我當然找不到任何Apple文檔。它肯定比檢查UI_USER_INTERFACE_IDIOM()更復雜,並且在任何地方硬編碼兩個不同的nib名稱,但如果它沒有記錄,我不相信它。
而且,2)有誰知道iOS的這個版本開始工作了嗎?我只在4.2版本中試過,它在那裏工作。一般設備修改器(即使是上面列出的文檔記錄)最低爲4.0。
不錯的地方。很確定這是4.0以上,當然對於通用應用程序;雖然也許這在iPad上工作3.2?回顧bundle編程指南,它總是使用圖像作爲資源加載的示例,但是再次讀取行之間的內容,可能是所有資源通過應用程序包通過相同機制丟棄而加載? – petert