在我的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函数中。
答案 0 :(得分:1)
也许从主线程执行segue将完成这项工作:
func parser(_ parser: XMLParser, didEndElement elementName: String, namespaceURI: String?, qualifiedName qName: String?)
{
DispatchQueue.main.async {
performSegue(withIdentifier: "userDidRequestReset", sender: nil)
}
}