2014-09-24 50 views
0

所以我最近開始使用Swift基本上我有一個UILabel我用來顯示錯誤消息。這個標籤隱藏起來(通過故事板的隱藏複選標記,我試圖將其設置爲隱藏在viewDidLoad中)。標籤需要幾秒鐘取消隱藏

當用戶點擊登錄時,apicontroller類會發布到後端服務器以檢查憑證。該控制器有一個代表completionHandler(NSURLSession.dataTaskWithRequest)。 viewcontroller中的協議方法檢查以查看http狀態,如果它是200,它將轉到下一個視圖。然而,如果不是200,視圖控制器取消隱藏錯誤標籤

(self.errorLabel.hidden = false and self.erorLabel.text = "ERROR MESSAGE HERE").

這裏是我的問題:

當erorrlabel應該是取消隱藏,我設置它的隱藏屬性設置爲false,的println (「現在應該不隱藏」)並顯示警報。警報和打印語句立即執行。但是,標籤在顯示前需要幾秒鐘。

我已經嘗試過在模擬器中的4s,5s和6s以及一個實際的5s,我仍然遇到這個問題。我也試過用self.view.setNeedsDisplay()手動刷新視圖,但它仍然不起作用。

任何想法?

+0

你應該包括你的代碼的相關部分,甚至更好的包括足夠的代碼讓其他人重現問題。 – Postlagerkarte 2014-09-24 16:42:35

回答

1

您可能正在更新不是主線程的線程中的標籤。

附上的代碼塊中:

dispatch_async(dispatch_get_main_queue()) { 
    // Update the label here 
} 
+0

非常感謝 – Saad 2014-09-24 16:39:26