我的 iOS 应用程序有一个欢迎屏幕(不要与默认 View 混淆)。 View Controller 使用 NSXMLParser 下载并解析 XML 文件。当它完成它的任务时,它会使一个按钮可见,单击该按钮时会调用“presentViewController”,将用户带入实际的应用程序。这很好用。
然后我决定只希望应用程序自动转换,因此我完全删除了按钮并将对 presentViewController 的调用移动到“parserDidEndDocument”委托(delegate)方法中。该方法被调用但没有任何反应。我怀疑它与上下文有关,但是当我记录“self”时,它会打印一个欢迎 View Controller 的实例。我究竟做错了什么?我应该如何解决这个问题?
最佳答案
尝试将其分派(dispatch)到主线程。 NSXmlParser 等异步对象在单独的线程上工作,但 UIKit 更新必须在主线程上完成。
dispatch_async(dispatch_get_main_queue(), ^{
[self presentViewController]; //Or whatever
});
关于ios - presentViewController 是否有必需的上下文?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11409725/