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

时间:2017-05-02 13:23:04

标签: ios swift asynchronous segue nsxmlparser

在我的VC中,我称之为XML Web服务。根据结果​​,我可能会转向另一个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。为什么不起作用?

注意:我也尝试添加自我。在演出之前,但仍然没有运气。

修改:我的performSegue在按钮操作等其他位置工作得很好,而不是在XMLParser函数中。

1 个答案:

答案 0 :(得分:1)

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

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