0

アプリに登録した URI スキームを介して Web から開始できるアプリケーションがあります。URI に応じて、さまざまなビュー コントローラーを開きます (AppDelegate で rootViewController を設定することにより)。各View Controllerは、初期化時にサーバーから初期化データを非同期に取得します。

私の問題は次のとおりです。サーバーの応答が遅く、アプリケーションを終了してアプリケーションを再度入力すると (新しいビュー コントローラーが開かれる)、最初のビュー コントローラーがまだバックグラウンドに存在し、その要求に対するサーバーの応答を受信します。送った。これにより、最初のビュー コントローラーがフォーカスされていなくても、最初のビュー コントローラーによってアラートが表示される可能性があります。

これは、viewDidDisappear: メソッドでフラグを設定することで修正できます。しかし、この種の処理はコードを台無しにするので、どうにかして AppDelegate からビュー コントローラーを停止できれば、もっといいでしょう。または、少なくとも、フォアグラウンドにある場合にのみアラート ビューが表示されるようにします。これらのいずれかを行う方法はありますか?

4

1 に答える 1

0

別のSOの質問で可能な解決策を見つけました

 if (viewController.isViewLoaded && viewController.view.window) {
    // present alert view
 }

これによりフラグは回避されますが、アラート ビューが表示される場所に分散する必要があります。

于 2013-01-28T07:30:41.100 に答える