1

iOS 4.3 までサポートする必要があります。

私のアプリはコンソールに出力します:

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

私の知る限り、二段回転は使っていません。ビューコントローラーにこのメソッドがあります:

- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation {
    return YES;
}

それを修正するには、他に何を確認すればよいですか?

編集:より正確: 私のアプリは UITabbarController サブクラスを使用します。アプリが起動すると、ユーザーがログインしているかどうかを確認し、ログインしている場合はタブバー コントローラーのコントローラーを開始します。ログインしているユーザーがいない場合、(タブバー コントローラーから) モーダル ビューが表示され、ユーザーにログインを促すプロンプトが表示され、タブバー コントローラーのコントローラーは (まだ) 初期化されていません。その瞬間だけ「二段回転」のエラーが出て、回転しません。

要約すると、問題はその状況で発生します。

  • メイン ウィンドウの rootViewController はタブバー コントローラーです。
  • タブバーコントローラーが空です(タブにビューコントローラーがなく、タブがありません)
  • ビュー コントローラーは、タブバー コントローラーからモーダルに表示されます
4

2 に答える 2

0

OK私は解決策を見つけました。

UITabBarControllerのviewControllersプロパティが初期化されるまで、提示されたモーダルビューは回転しないようです。関連するモーダルビューは実際にはログイン用であるため、タブバーコントローラーによって保持されるビューはユーザーがログインしているという事実に依存するため、ユーザーがログインするまでその背後に何も表示したくありません。モーダルビューを表示する直前に、タブバーコントローラーを単一の空のUIViewControllerで初期化し、モーダルビューが閉じられたとき(つまり、ユーザーがログインしたとき)にタブバーコントローラーを削除します。

おそらくそれはハックのように見えますが、うまく機能します。そして、その理由がわからなくても、タブバーコントローラーが完全に初期化されるまで希望どおりに動作しないことは完全に非論理的ではないようです。

誰かがより良い解決策や説明を持っている場合は、コメントしてください:)

于 2013-01-23T06:36:04.783 に答える
0

このエラーに関する投稿はあまりないので、森を見逃す可能性がある木に焦点を合わせている次の人のために、私自身の欠点を認めます。行方不明者を見つけた

[super viewWillAppear:アニメーション];

サブ内で呼び出します。

于 2013-10-14T23:12:37.953 に答える