我的iOS应用程序有一个欢迎屏幕(不要与默认视图混淆)。视图控制器使用NSXMLParser下载并解析XML文件。完成任务后,它会显示一个按钮,单击该按钮会调用“ presentViewController”,该按钮会将用户带入实际的应用程序。这很好。

然后,我决定只希望该应用程序自动转换,因此我完全删除了该按钮,并将对presentViewController的调用移至“ parserDidEndDocument”委托方法中。该方法被调用,但没有任何反应。我怀疑它与上下文有关,但是当我登录“ self”时,它会打印一个欢迎视图控制器的实例。我究竟做错了什么?我该如何解决?

最佳答案

尝试将其分派到主线程。诸如NSXmlParser之类的异步对象在单独的线程上工作,但是UIKit更新必须在主线程上完成。

dispatch_async(dispatch_get_main_queue(), ^{
    [self presentViewController]; //Or whatever
});

关于ios - presentViewController是否有必需的上下文?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/11409725/

10-09 06:29