我的iOS应用程序有一个欢迎屏幕(不要与默认视图混淆)。视图控制器使用NSXMLParser下载和解析XML文件。当它完成它的任务时,它会显示一个按钮,当点击它时会调用“presentViewController”,它将用户带入实际的应用程序。这很好。
然后我决定我只想让应用程序自动转换,所以我完全删除了按钮,并将对presentViewController的调用移动到“parserDidEndDocument”委托方法中。调用该方法但没有任何反应。我怀疑它与上下文有关,但是当我记录“self”时,它会打印一个欢迎视图控制器的实例。我究竟做错了什么?我该如何解决这个问题?
答案 0 :(得分:4)
尝试将其分派到主线程。像NSXmlParser这样的异步对象可以在不同的线程上工作,但UIKit更新必须在主线程上完成。
dispatch_async(dispatch_get_main_queue(), ^{
[self presentViewController]; //Or whatever
});