私は、私がiOSのいくつかの奇妙な動作であると思ったことを偶然見つけました - StackOverflowの検索は私の問題と全く同じです。正しい動作ですか? - iPad上で実行されているiPhoneアプリは〜ipadの拡張子を持つxibをロードします
基本的に、デバイス修飾子(〜iphoneと〜ipad)を持つ2つの.xibファイルがあり、iPad上でiPhoneアプリを実行すると(iPhoneシミュレータウィンドウ内で)、読み込みが試行されます〜ipad xibファイルではなく〜ipad xibファイルです。
これはバグですか?私は〜iphone xibが読み込まれることを期待します。実際のデバイスはiPadですが、iPhoneをエミュレートしていますね。だから確かにそれはiPhoneのインターフェイスファイルをロードする必要がありますか?再現する
ステップ:
- Xcodeで新しいiPhone(普遍的ではない)アプリを作成 - 'シングル表示' テンプレートを使用します。 重複
- iphone.xibのViewController〜へ
- 名前の変更ViewController.xib、あなたが今のViewController〜のiphone.xibとのViewController〜ipad.xibを持つよう
- 、XIBの名前を変更するファイル名を指定して実行iPadのシミュレータ内で、このiPhoneアプリ(または実際のiPadデバイスで)〜〜ipad XIBは〜iPhone xibではなく読み込まれます。
誰もこの問題を回避する方法を提案できますか?私の実際のXCodeプロジェクトは複数のターゲットを持っている(1. iPhone専用アプリ2. iPad専用アプリ)ので、すべてのシナリオをサポートする必要があるため、デバイス修飾子を使用する必要があります。
私は、この動作を確認することができます。私は* ipad.xibの名前を* -ipad.xibに変更し、[UIDevice currentDevice]のコードで適切なxibファイルを選択してください.userInterfaceIdiom – skidr0w