2016-03-06 97 views
-1

我現在有一個UIView一個UIActivityIndicatorViewUILabel它們都默認爲隱藏:的UIView無法取消隱藏

UIView

所有3個要素,應取消隱藏登錄按鈕被點擊後:

@IBAction func signinTapped(sender: UIButton) { 
    loading.hidden = false 
    activityIndicatorView.startAnimating() 

所有3個元素在收到服務器響應後應該再次隱藏:

    if(success == 1) 
        { 
         NSLog("Login SUCCESS"); 

         let prefs:NSUserDefaults = NSUserDefaults.standardUserDefaults() 
         prefs.setObject(username, forKey: "USERNAME") 
         prefs.setInteger(1, forKey: "ISLOGGEDIN") 
         prefs.synchronize() 

         loading.hidden = true 
         activityIndicatorView.stopAnimating() 

         self.performSegueWithIdentifier("goto_attendance", sender: self) 
        } 

但是,在點擊登錄按鈕後,元素是不可隱藏

我試圖通過創建一個按鈕來測試它,只是爲了隱藏和取消隱藏元素,它的工作原理。因此,所有的出口和變量名稱都是正確的。

它只是不會隱藏和取消隱藏,當它之前有其他功能,如設置prefs:NSUserDefaults如上面的代碼所示。

+1

如果你正在做的是,在後臺線程,你應該做在主線程的用戶界面的變化。 –

+0

你可以使用完整的方法嗎?其中包括if(成功== 1){NSLog(「Login SUCCESS」);塊? –

+0

@JasonNam當然,將在一分鐘內更新帖子 – Panda

回答

2

做在主線程

dispatch_async(dispatch_get_main_queue(), {() -> Void in 
    loading.hidden = true 
    activityIndicatorView.stopAnimating() 
}) 
+0

謝謝,它工作:) – Panda