在没有操作的情况下从AlertController中发现

时间:2017-03-06 11:50:53

标签: ios

我有一个加载指示器,用UIAlertController实现。当我向服务器发送auth请求时 - 我启动加载指示器。请求成功后,我必须转到另一个ViewController并隐藏加载指示器。在我执行segue之前,我需要等到AlertController解除指示完成。所以我有这样一个逻辑:

private var loadingIndicator: UIAlertController?

func navigateToMonitoring() {
        DispatchQueue.global(qos: .background).async {
            if let indicator = self.loadingIndicator {
                while !indicator.isBeingDismissed { continue }
                DispatchQueue.main.async {
                    self.performSegue(withIdentifier: "Monitoring", sender: self)
                }
            }
        }
    }

但是当这个方法执行时我收到了一条消息 - 警告:尝试显示其视图不在窗口层次结构中! - 并且没有执行segue。

我该如何解决这个问题?

(Swift 3,Xcode 8)

1 个答案:

答案 0 :(得分:0)

您可以创建警报并存储其引用,然后显示警报并调用API,在该API的完成块中,您可以关闭它并执行segue,希望这对您有意义。