如何检查另一个视图控制器是否可见?

时间:2015-04-12 17:05:40

标签: ios swift uialertview uialertcontroller

当有两个UIAlertViews同时尝试呈现时,我的应用有时会崩溃。如何在显示另一个UIAlertview之前检查是否显示了另一个if ViewController.isVisable == false { self.presentViewController(AlertView, animated: true, completion: nil) }

这是我尝试过的,但它不起作用。

注意:我在这个项目中使用swift。

{{1}}

2 个答案:

答案 0 :(得分:13)

作为对您问题的严格回答,您可以查看ViewController的观看次数是否有他的窗口:

if ViewController.view.window != nil {

}

无论如何,我鼓励你带@Wain'建议。

答案 1 :(得分:6)

你不应该像这样接近这个问题。相反,当显示/隐藏视图控制器视图时,应启用/禁用触发要显示的警报的任何内容。不显示的视图控制器通常不应该通过继续跟踪状态并尝试更新UI(在其自己的视图中或使用警报)来消耗资源。

有时会出现明显的例外情况,但它应该是您的基线位置,并且会同时避免诸如多个警报视图之类的问题(或者至少出于相同的原因/触发器)。