2012-07-10 61 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

相關問題