【问题标题】:How do i check if another view controller is visible?如何检查另一个视图控制器是否可见?
【发布时间】:2015-04-12 17:05:39
【问题描述】:

有时当两个UIAlertViews 试图同时呈现时,我的应用程序会崩溃。如何在显示另一个UIAlertview 之前检查是否正在显示另一个UIAlertview

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

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

if ViewController.isVisable == false {    
    self.presentViewController(AlertView, animated: true, completion: nil)    
}

【问题讨论】:

    标签: ios swift uialertview uialertcontroller


    【解决方案1】:

    作为对您问题的严格回答,您可以检查ViewController 的视图是否有他的窗口:

    if ViewController.view.window != nil {
    
    }
    

    无论如何,我鼓励你接受@Wain 的建议。

    【讨论】:

      【解决方案2】:

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

      这有时显然有例外,但它应该是您的基准位置,并且会避免同时出现多个警报视图等问题(或至少出于相同的原因/触发器)。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-07-25
        • 1970-01-01
        • 2012-03-26
        • 1970-01-01
        • 1970-01-01
        • 2020-10-03
        相关资源
        最近更新 更多