相关疑难解决方法(0)

iPhone - 如何找到最顶层的视图控制器

我现在遇到了几个案例,它们可以方便地找到"最顶层"的视图控制器(负责当前视图的控制器),但还没有找到办法.

基本上挑战是这样的:假设一个人在一个不是视图控制器(或视图)的类中执行[并且没有活动视图的地址]并且还没有传递最顶层视图控制器的地址(或者说,导航控制器的地址),是否可以找到该视图控制器?(如果是这样,怎么样?)

或者,如果失败了,是否有可能找到最顶层的视图?

objective-c uiviewcontroller uikit uiview ios

240
推荐指数
17
解决办法
18万
查看次数

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

在我的应用程序中,我使用的是导航控制器.稍后在某些视图中,我presentViewController用于显示缩放的图像.我也没有使用故事板或笔尖.

我只在iOS 7中收到此错误.它在iOS 6及更早版本中运行良好:

不鼓励在分离的视图控制器上呈现视图控制器

iphone warnings ios ios7

173
推荐指数
11
解决办法
13万
查看次数

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

我的情况与我在这里找到的所有其他例子不同.我有一个基于标签的应用程序.在其中一个选项卡上,用户可以按下一个按钮,该按钮可以同时从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.

xcode objective-c compiler-warnings ios uialertcontroller

3
推荐指数
1
解决办法
1万
查看次数