我如何检查另一个视图控制器是否可见?
How do i check if another view controller is visible?
有时,当两个 UIAlertViews
试图同时显示时,我的应用程序会崩溃。如何在显示另一个 UIAlertview
之前检查是否正在显示另一个?
这是我试过的方法,但它不起作用。
注意:我正在为这个项目使用 swift。
if ViewController.isVisable == false {
self.presentViewController(AlertView, animated: true, completion: nil)
}
你不应该这样处理问题。相反,当显示/隐藏视图控制器视图时,应启用/禁用触发要显示的警报的任何内容。未显示的视图控制器通常不应通过继续跟踪状态并尝试更新 UI(在其自己的视图中或使用警报)来消耗资源。
有时显然会有例外,但这应该是您的基线位置,并且会避免同时出现多个警报视图(或至少出于相同的原因/触发器)之类的问题。
作为对您问题的严格答复,您可以检查 ViewController
的观点是否有他的 window:
if ViewController.view.window != nil {
}
无论如何,我鼓励您采纳@Wain 的建议。
有时,当两个 UIAlertViews
试图同时显示时,我的应用程序会崩溃。如何在显示另一个 UIAlertview
之前检查是否正在显示另一个?
这是我试过的方法,但它不起作用。
注意:我正在为这个项目使用 swift。
if ViewController.isVisable == false {
self.presentViewController(AlertView, animated: true, completion: nil)
}
你不应该这样处理问题。相反,当显示/隐藏视图控制器视图时,应启用/禁用触发要显示的警报的任何内容。未显示的视图控制器通常不应通过继续跟踪状态并尝试更新 UI(在其自己的视图中或使用警报)来消耗资源。
有时显然会有例外,但这应该是您的基线位置,并且会避免同时出现多个警报视图(或至少出于相同的原因/触发器)之类的问题。
作为对您问题的严格答复,您可以检查 ViewController
的观点是否有他的 window:
if ViewController.view.window != nil {
}
无论如何,我鼓励您采纳@Wain 的建议。