2013-03-18 45 views
4

我正在研究一個教程,一些有趣的事情引起了我的注意。我剛剛創建了一個單一視圖應用程序項目,並且我注意到兩個.xib文件,一個名爲ViewController_iPhone.xib,一個名爲ViewController_iPad.xib。在我的項目中,如果我想爲iPhone和iPad使用不同的.xibs,我將使用iPhone的ViewController.xib和iPad的ViewController~ipad.xib。我理解這可能是一個新的命名約定,但是如果我定位老的iOS版本,我可以使用這個命名約定事件嗎? 這也發生在xCode 4.6ViewController_iPad.xib vs ViewController〜ipad.xib

謝謝。

+0

其實我不認爲這是一個新的命名約定。我只是看着AppDelegate.m,發現它檢查設備類型,並加載相應的.xib文件,這對我來說很愚蠢。 – Cosmin 2013-03-18 12:42:29

回答

4

我想你可能遇到過iOS上的通用應用程序,或者可能會根據設備加載.xib文件。無論哪種方式,你應該使用~ipad,而不是~iPad~iphone而不是 ~iPhone爲它正常工作。

兩者都將在模擬器上工作,但事先會在設備上溝渠。

請查收來自蘋果的參考提取物iOS Supports Device-Specific Resources

IOS支持設備特有的資源

在iOS系統4.0和更高版本,可以只在一個特定類型的設備將個別的資源文件,可用。此功能簡化了您必須爲通用應用程序編寫的代碼。而不是創建單獨的代碼路徑來爲iPhone加載一個版本的資源文件,併爲iPad加載不同版本的文件,您可以讓包加載例程選擇正確的文件。你所要做的就是適當地命名你的資源文件。

要將資源文件與特定設備相關聯,請將自定義修飾符字符串添加到其文件名。包含此修飾符字符串將生成以下格式的文件名:

該字符串表示資源文件的原始名稱。它也代表從代碼訪問文件時使用的名稱。同樣,該字符串是用於標識文件類型的標準文件擴展名。該字符串是區分大小寫的字符串,可以是下列值之一:

~ipad - The resource should be loaded on iPad devices only. 

~iphone - The resource should be loaded on iPhone or iPod touch devices only. 
相關問題