3

ここに私の問題があります。誰かが私を助けてくれることを願っています。

私のiPadアプリは次のように作られています:私のappDelegateのウィンドウに追加されたtabBarControllerのタブとしていくつかのviewControllersが追加されています。これらの viewController のそれぞれに、1 つの viewController を含む 2 つの navigationController を取得しました。

  • Appdelegate
    • TabBarController
      • ビューコントローラー
        • ナビゲーションコントローラー
          • ビューコントローラー
        • ナビゲーションコントローラー
          • ビューコントローラー
      • ビューコントローラー
        • ナビゲーションコントローラー
          • ビューコントローラー
        • ナビゲーションコントローラー
          • ビューコントローラー

シミュレーターではすべて正常に動作しますが、デバイスで実行すると、次の警告が表示されました。

Using two-stage rotation animation. To use the smoother single-stage animation, this application must remove two-stage method implementations.

横向きモードのデバイスで実行した場合にのみ発生します。tabBarController によって表示されるデフォルト ビューの最初の navigationController は、すべての画面幅を取得します (ここでは重要ではありませんが、この警告によってレイアウトがおかしくなることを説明するためです)。縦向きでは、コンソールで何もトレースされません。

このメッセージについて多くのことを読みましたが、それを消すための解決策が見つかりません。きっとshouldAutoRotateとかの話だと思います。また、tabBarController を削除して、最初の viewController をウィンドウに追加するだけで、メッセージが表示されないことにも気付きました。

非常に奇妙です...助けてください:)

4

1 に答える 1

2

UISplitViewControlleriPadで利用できる標準に頼るべきだと思います。このコントローラーは、設定アプリやその他のさまざまなアプリで使用されるものです。

このようなツールに慣れていない場合は、GitHubでslatvickによって開発されたAPSplitViewControllerプラグインをご覧ください。これで多くの問題を解決できると思います。

編集

この問題についてグーグルで調べたところ、View Controllerの誤った階層を作成すると、この警告が表示されることがわかりました。この場合、ViewControllerに別のNavigationControllerが含まれていなくても、ViewController内に2つのNavigationControllerをプッシュしています。viewDidLoadおそらく、などのような親ビューコントローラメソッドに送信する方法に関連する問題がある可能性がありますviewWillLoad:。これらすべての呼び出しを内部ナビゲーションコントローラから親ビューコントローラに正しく渡しているかどうかを理解するようにしてください。

于 2011-06-07T13:31:55.733 に答える