我有一个加载指示器,用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)
答案 0 :(得分:0)
您可以创建警报并存储其引用,然后显示警报并调用API,在该API的完成块中,您可以关闭它并执行segue,希望这对您有意义。