2012-05-01 12 views
0

良い一日で実行しているときは、そのままrootViewControllerないtabBarController、iPhoneアプリ:あなたにiPhone

は私がiPad上で実行したいiPhoneアプリを持っています。しかし、私はiPhone上でそれを実行するのとは対照的に、iPad(simまたはデバイス)で動作しているときに違った動作を経験しています。注:私は普遍的なアプリにしたくない、それはiPhoneアプリとして設定されています。

初期ビューコントローラがtabBarControllerある - (iPhoneの絵コンテから撮影した - 何のアプリの絵コンテはありません)以下を参照:

enter image description here

私は私のハンドルを与えるappDidFinishLaunchingWithOptionsでいくつかのコードを持っています私が後で使用するtabBarController。 iPhoneで実行しているとき、私が使っているコード行(下の53行目)はうまく動作し、初期のビューコントローラであるtabBarControllerオブジェクトを返します。

enter image description here

私の問題:iPadの(シミュレータまたはデバイス)上で実行している場合は、アプリのデリゲートでself.window.rootViewControllerは私に、「アラート中央ビュー・コントローラ」のオブジェクトを返します - あなたはストーリーボードから見ることができます上のスニペットは、ビュー階層のさらに下にあり、当初のビューコントローラではありません。

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

初期ビューコントローラを別の方法で取得する必要がありますか?

私の違いを教えてもらえますか?

ありがとうございます!

+0

空白のオブジェクトはどういう意味ですか? nilまたはUIViewController? –

+0

私はちょうど返されたもののより良い説明で質問を更新しました。ありがとう:) – Stretch

答えて

1

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