警告:不建议在分离的视图控制器上显示视图控制器

Sco*_*ter 3 xcode objective-c compiler-warnings ios uialertcontroller

我的情况与我在这里找到的所有其他例子不同.我有一个基于标签的应用程序.在其中一个选项卡上,用户可以按下一个按钮,该按钮可以同时从Web服务器下载多个文件.

我使用NSOperation来执行每个下载,以便我可以利用内置的依赖项.下载都发生在后台线程上,因此应用程序保持响应.最后的下载完成后,我在屏幕上放置了一个alertController,让用户知道它们已经完成.

如果用户在显示警报控制器时选择了不同的选项卡,则会收到警告:"不建议在分离的视图控制器上显示视图控制器"

如果它们仍然在开始下载的相同选项卡上,那么我不会收到警告.我试过更换:

[self presentViewController:alertController animated:YES completion:nil];
Run Code Online (Sandbox Code Playgroud)

[self.view.window.rootViewController presentViewController:alertController animated:YES completion:nil];
Run Code Online (Sandbox Code Playgroud)

但结果是从不出现alertController.

我在主线程上呈现alertController.

我无法预测下载完成时用户将使用哪个选项卡视图控制器,并且真的想要摆脱此警告.

我正在使用Obj-C开发macOS和Xcode 8.

i_a*_*orf 8

您需要将下载结果委托给顶级视图控制器,这听起来像您的UITabBarController.在UITabBarController肯定知道选择哪个选项卡,也可以对自己表现的警报.