【发布时间】:2014-11-13 11:04:18
【问题描述】:
在 iOS dismissViewControllerAnimated:completion: 之后将导致 presentedViewController 成为 nil。
在 iOS 8 中,presentedViewController 仍然指向显示的视图控制器,直到执行完成块。
[self dismissViewControllerAnimated:NO completion:^{
//self.presentedViewController is nil
}];
//self.presentedViewController is nil on iOS 7, but not nil on iOS 8
所以在 iOS 8 中,我们不能依赖属性 presentedViewController 来找出当前最顶层的可见视图控制器。
在 iOS 8 中,警报需要呈现在视图控制器(poses another problem)上。如果我们尝试呈现的视图控制器已经呈现视图控制器,它们将不会显示。
如果我刚刚关闭了呈现的视图控制器并在当前顶部可见的视图控制器上显示UIAlertController(通过递归搜索最后一个presentedViewController),那么它当然不会显示但会记录一条错误消息:“警告:尝试呈现不在窗口层次结构中的视图!"
- 这是 iOS 8 中的错误还是只是新方法?
- 如何找到可以在其上显示
UIALertController的视图控制器?
【问题讨论】:
-
isBeingDismissed有点帮助
标签: ios uiviewcontroller ios8 presentviewcontroller