私の状況は私がここで見つけることができる他のすべての例とは異なります。私はタブベースのアプリを持っています。タブの1つで、ユーザは、ウェブサーバから複数のファイルを一度にダウンロードするボタンを押すことができる。警告:分離されたView ControllerにView Controllerを提示することはお勧めしません。
私は組み込みの依存関係を利用できるように、これらのダウンロードをそれぞれ実行するためにNSOperationを使用します。ダウンロードはすべてバックグラウンドスレッド上で行われるので、アプリは応答したままです。最後のダウンロードが完了したら、alertControllerを画面に表示して、ユーザーに完了したことを知らせます。
警告コントローラが、私は警告を取得提示されたとき、ユーザーが別のタブを選択した場合:彼らはダウンロードを開始したのと同じタブに残っている場合は、「デタッチビューコントローラのビューコントローラを提示が推奨され、」
を私は警告を受けていない。
[self.view.window.rootViewController presentViewController:alertController animated:YES completion:nil];
で
[self presentViewController:alertController animated:YES completion:nil];
が、結果はalertControllerが提示されることはありませんということです。私は交換してみました。
メインスレッドにalertControllerを表示しています。
ダウンロードが完了したときにユーザーがどのタブビューコントローラを使用しているかを予測する方法がなく、この警告を取り除きたいと思っています。
私はObOS-CでmacOSとXcode 8で開発しています。
[警告:取り外しビューコントローラ上-Presentingビューコントローラが推奨される]の可能な重複(https://stackoverflow.com/questions/19890761/warning-presenting-view-controllers-on-detached-view-コントローラ - は - 落胆) –