11

ルート ビュー コントローラーにまだモーダル ビューがあるかどうかを確認する必要があります。私が直面している問題は、表示する必要があるスレッドからの 2 番目のモーダル ビューがあることです。最初のモーダル ビューがなくなるまで、2 番目のモーダル ビューを遅らせたい。2 番目のモーダル ビューは条件付きであるため、最初のモーダル ビューを閉じた後に起動することはできません。

[self.window.rootViewController presentModalViewController:vc animated:YES];

私がやりたいこと(より良い代替方法を自由に提案してください):

  1. self.window.rootViewController現在、モーダル ビューが一番上に表示されているか (またはモーダル ビューがまだアニメーション化されているか) を確認します。
  2. 使用するperformSelector:afterDelay:0.1
  3. 再度確認し、必要に応じて再度延期する
4

3 に答える 3

14

rootViewController.presentedViewController(iOS 5.0 以降で利用可能) または(iOS 2.0 以降で利用可能) を取得rootViewController.modalViewControllerし、それが nil かどうかを確認します。

また、セカンダリ スレッドから 2 番目のビュー コントローラーを表示したくない場合は、すべての UI をメインスレッドで実行する必要があります。

于 2012-05-19T15:51:42.837 に答える
0

もう少し決定論的なことをしたくなるでしょう。両方のモーダル表示を行うコードを 1 つ用意し、最初のモーダルがいつ表示されて消えるかを追跡できるようにします。これにより、2 番目のモーダルを表示するメッセージを受け取った場合に、それを行うか、単に「保留中」を設定するかがわかります。 " 国旗。最初のものが却下されたことが通知されると、2 番目が保留中かどうかを確認できます。

于 2012-05-19T15:49:37.690 に答える