0

こんばんは、

iPadで実行したいiPhoneアプリがあります。ただし、iPad (sim またはデバイス) で実行すると、iPhone で実行する場合とは異なる動作が発生します。注: ユニバーサル アプリにしたくありません。iPhone アプリとして設定されています。

最初のビュー コントローラーは tabBarController です - 以下を参照してください (iPhone ストーリーボードから取得 - iPad ストーリーボードはありません)。

ここに画像の説明を入力

appDidFinishLaunchingWithOptions には、後で使用する tabBarController のハンドルを提供するコードがいくつかあります。iPhone で実行すると、使用するコード行 (以下の 53 行目) は正常に動作し、最初のビュー コントローラーである tabBarController オブジェクトが返されます。

ここに画像の説明を入力

私の問題: iPad (シミュレーターまたはデバイス) で実行している場合、アプリ デリゲートの self.window.rootViewController は、「Alert Central View Controller」オブジェクトを返します。これは、上記のストーリーボード スニペットからわかるように、ビュー階層のさらに下にあります。 、間違いなく最初のView Controllerではありません。

ここで何が起きてるの?iPad モードではなく iPhone モードで実行されているため、iPad で実行する場合はビューの階層に変更はないはずだと思いました。明らかに私は間違っています!

別の方法で最初のView Controllerに到達しようとする必要がありますか?

誰かが違いを教えてもらえますか?

ありがとう!

4

1 に答える 1

2

Info.plistファイルでメインストーリーボードファイルのベース名キーを確認し、正しいストーリーボードファイル名を持つiPhoneのエントリのみがあることを確認してください。私はこれと同じ問題に遭遇し、plistに2つのストーリーボードエントリがあることを発見しました。追加のキーを削除した後、アプリがクラッシュしなくなりました。UIStoryboardクラスリファレンスもチェックアウトしてください。

于 2013-01-12T12:11:41.610 に答える