ios - 如何检查模态视图当前是否在我的 self.window.rootViewController 之上?

标签 ios cocoa-touch uiviewcontroller

我需要检查 Root View Controller 上是否还有模态视图。 我面临的问题是我有第二个模态视图来自某个需要显示的线程。我想延迟第二个模态视图,直到第一个模态视图消失。 我不能在第一个模态视图关闭后才启动它,因为第二个模态视图是有条件的。

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

我想做什么(欢迎提出更好的替代方法):

  1. 检查 self.window.rootViewController 当前是否有模态视图显示在顶部(或仍在动画模态视图)。
  2. 使用performSelector:afterDelay:0.1
  3. 再次检查,如果需要,再次延迟

最佳答案

获取 rootViewController.presentedViewController(在 iOS 5.0+ 中可用)或 rootViewController.modalViewController(在 iOS 2.0+ 中可用)并查看它是否为 nil。

此外,您不想从辅助线程呈现第二个 View Controller ,所有 UI 内容必须在主线程上完成。

关于ios - 如何检查模态视图当前是否在我的 self.window.rootViewController 之上?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10666560/

相关文章:

ios - 如何在关闭 View Controller 时获得淡出动画

ios - UIViewControllerContext initalFrameForViewController & finalFrameForViewController 对所有值显示 0

ios - 每个 View 内的 UINavigationBar

ios - 应用内购买沙盒 - 持续提示 Apple 登录?

ios - 迭代 Swift 扩展中的可用类?

iphone - 具有左对齐标签的可编辑 UITableViewCell

ios - 在后台 NSOperationQueue 上执行文件操作是否安全?

objective-c - 为 AppDelegate 添加了未注册的协议(protocol)

ios - 如何根据键入的文本增加文本字段的宽度?

ios - 创建 View Controller