当警报出现时,防止显示视图控制器

时间:2018-01-09 14:37:07

标签: ios swift

我有一些异步检查错误的代码,如果发生错误,它会使用window.rootViewController?.present(...)显示警告

有时,这会在呈现视图控制器之前发生,因此警报会在一瞬间显示,然后新视图控制器会在其上面显示。

问题是新的VC也是异步呈现的(即HTTP请求完成时)。

有没有办法让警报真正模态化?如何处理?

2 个答案:

答案 0 :(得分:0)

也许这可以提供帮助:What is the best way to check if a UIAlertController is already presenting?

我会尝试检查presentedViewController属性是否与nil不同,即使它之前是一段时间,但该属性应该包含所呈现的视图控制器。如果是这种情况,则避免展示新的。

答案 1 :(得分:0)

另一种选择是将视图添加到所有内容之上的其他窗口,这样就无法在其上显示任何内容。您可以在UIWindowLevelAlert或other level上显示它,它将覆盖所有控制器。我非常确定它在自己的窗口中的一个例子是Instagram中的体积视图,它向下滑动以覆盖视图。