我有一些异步检查错误的代码,如果发生错误,它会使用window.rootViewController?.present(...)
显示警告
有时,这会在呈现视图控制器之前发生,因此警报会在一瞬间显示,然后新视图控制器会在其上面显示。
问题是新的VC也是异步呈现的(即HTTP请求完成时)。
有没有办法让警报真正模态化?如何处理?
答案 0 :(得分:0)
也许这可以提供帮助:What is the best way to check if a UIAlertController is already presenting?
我会尝试检查presentedViewController
属性是否与nil不同,即使它之前是一段时间,但该属性应该包含所呈现的视图控制器。如果是这种情况,则避免展示新的。
答案 1 :(得分:0)
另一种选择是将视图添加到所有内容之上的其他窗口,这样就无法在其上显示任何内容。您可以在UIWindowLevelAlert或other level上显示它,它将覆盖所有控制器。我非常确定它在自己的窗口中的一个例子是Instagram中的体积视图,它向下滑动以覆盖视图。