我已經偶然發現我認爲是iOS中的一些奇怪行爲 - StackOverflow的搜索沒有發現任何與我的問題相同的東西。基本上,如果你有兩個使用設備修飾符(〜iphone和〜ipad)的.xib文件,並且你在iPad上(即在iPhone模擬器窗口內)運行iPhone應用程序(不是通用的),它將嘗試加載〜ipad xib文件而不是〜iphone xib。正確的行爲? - 在iPad上運行的iPhone應用程序加載xib與〜ipad擴展
這是一個錯誤?我期望〜iphone xib被加載。儘管實際的設備是iPad,但它正在模擬iPhone,對吧?所以肯定它應該加載iPhone界面文件?
重現步驟:
- 創建一個新的iPhone XCode中(不通用)的應用程序 - 使用 '單一視圖' 模板。
- 重命名ViewController.xib到的ViewController〜iphone.xib
- 複製和重命名的廈門國際銀行,讓你現在擁有的ViewController〜iphone.xib和ViewController〜ipad.xib
- 運行在iPad模擬器內這個iPhone應用程序(或在實際的iPad設備上) - 加載〜ipad XIB而不是〜iPhone xib。
任何人都可以建議我可以解決這個問題嗎?這很複雜,因爲我的實際XCode項目有多個目標(1.僅限iPhone的應用程序2.僅限iPad應用程序),所以我需要支持所有場景,因此使用設備修改器。
我可以證實這種行爲。我將* * ipad.xib重命名爲* -ipad.xib,並使用[UIDevice currentDevice] .userInterfaceIdiom – skidr0w