0

さまざまな目的でモーダルビューコントローラーを使用するアプリがあります。この質問で最も重要なのは、モーダルコントローラーを使用して、ユーザーがログアウトしたときにログイン画面を表示することです。

私が遭遇した問題は、呼び出しが行われたときに別のモーダルコントローラーが画面上または画面外でアニメーション化されている場合、presentModalViewController:animated:がサイレントに失敗するように見えることです。警告付きでデバッグコンソールに出力されますが、メソッド自体はBOOLを返したり、例外をスローしたりしないため、失敗したかどうかをコードでチェックインできないようで、すぐに再試行できます。

このメソッドを呼び出した直後にコントローラーが表示に失敗したことを検出する方法はありますか?

4

1 に答える 1

2

したがって、この質問を入力しているときに、presentingViewController(またはparentViewController)をチェックして、表示されているかどうかを確認し、nilの場合は再試行できることに気付きました。

テストされ、動作します。他の人が同様の問題に遭遇する可能性があることを見つけるために、とにかく質問を投稿して回答すると考えました。


テストで気付いたことがいくつかあります。

  • モーダルビューがアニメーションで表示されていない場合は、呼び出し時に別のモーダルビューがアニメーション化されていても成功するようです。

  • 表示しているコントローラーでdismissModalViewControllerAnimated:NOを呼び出すと、モーダルコントローラーにアニメーションを表示する前に、別のコントローラーがアニメーションを実行している場合でも正常に完了することができます。

于 2012-10-12T22:09:51.687 に答える