2014-09-24 74 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