iOS の奇妙な動作だと思われるものに出くわしました。StackOverflow を検索しても、私の問題と同じものは見つかりませんでした。
基本的に、デバイス修飾子 (~iphone と ~ipad) を持つ 2 つの .xib ファイルがあり、iPad で (つまり、iPhone シミュレーター ウィンドウ内で) iPhone アプリ (ユニバーサルではない) を実行すると、~ipad xib をロードしようとします。 ~iphone xib ではなくファイルです。
これはバグですか?~iphone xib がロードされることを期待します。実際のデバイスは iPad ですが、iPhone をエミュレートしていますね。それで、確かにiPhoneインターフェースファイルをロードする必要がありますか?
再現する手順:
- XCode で新しい iPhone (ユニバーサルではない) アプリを作成します - 「Single View」テンプレートを使用します。
- ViewController.xib の名前を ViewController~iphone.xib に変更します
- xib を複製して名前を変更し、ViewController~iphone.xib と ViewController~ipad.xib を作成します。
- この iPhone アプリを iPad シミュレーター内 (または実際の iPad デバイス) で実行します。~iPhone xib ではなく、~ipad XIB が読み込まれます。
この問題を回避する方法を提案できる人はいますか? 私の実際の XCode プロジェクトには複数のターゲット (1. iPhone のみのアプリ 2. iPad のみのアプリ) があるため、すべてのシナリオをサポートする必要があるため、デバイス修飾子を使用する必要があるため、複雑です。