2012-07-10 27 views
0

我的iOS应用程序有一个欢迎屏幕(不要与默认视图混淆)。视图控制器使用NSXMLParser下载并解析XML文件。当它完成它的任务时,它会使按钮可见,点击时会调用“presentViewController”,将用户带入实际的应用程序。这工作得很好。是否有presentViewController所需的上下文?

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

回答

4

尝试调度它到主线程。像NSXmlParser这样的异步对象在单独的线程上工作,但UIKit更新必须在主线程上完成。

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

工作正常!谢谢。不过,我现在得到这个警告:“开始/结束外观转换的不平衡调用。” – Groppe 2012-07-10 09:00:16

+0

确保你不会多次调用它。关于这个问题的答案也有很多。 – borrrden 2012-07-10 09:01:51

相关问题