无法从像 XMLParser 这样的异步函数调用 Segue

Can't Call Segue from Async Function like XMLParser

在我的 VC 中,我调用了一个 XML 网络服务。根据结果​​,我可能会转向另一个 VC。我已经从我的代码中删除了业务逻辑,只留下重要的部分。这是我的代码的简短版本:

func parser(_ parser: XMLParser, didEndElement elementName: String, namespaceURI: String?, qualifiedName qName: String?)
{
    performSegue(withIdentifier: "userDidRequestReset", sender: nil)
}

我什至有一个 prepareForSegue 并且它被调用:

override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
    let destinationVC = segue.destination as! ResetViewController
    destinationVC.username = txtUsername.text!
}

但是,无论有没有 prepareForSegue,它实际上都不会转到下一个 VC。为什么它不起作用?

注意:我也试过添加 self.在 performSegue 之前,但仍然没有运气。

编辑: 我的 performSegue 在按钮操作等其他地方工作得很好,只是在 XML 解析器函数中没有。

也许从主线程执行 segue 就可以完成这项工作:

func parser(_ parser: XMLParser, didEndElement elementName: String, namespaceURI: String?, qualifiedName qName: String?)
{
    DispatchQueue.main.async {
        performSegue(withIdentifier: "userDidRequestReset", sender: nil)
    }
}