2016-12-28 47 views
0

我在我的viewDidLoad一個異步任務功能的工作,通過返回的響應我改變了看法(顏色,文本...),但我有「錯誤」:的AsyncTask在viewDidLoad中

  • 有時當我改變視圖,我回到視圖,我沒有看到我的視圖背景爲橙色,但我得到它在綠色(綠色是在asynctask函數的響應後返回),所以它不正常時我回到視圖它必須重新加載它...

  • 有時視圖仍然在橙色背景,但功能已經通過...

    super.viewDidLoad() 
    
    self.lblUpdate.text = "Mise à jour des nouveaux paramètres en cours..." 
    self.viewUpdate.backgroundColor = UIColor.orange 
    self.hideUpdateConstraint.isActive = false 
    self.updateTopConstraint.isActive = true 
    self.updateBottomConstraint.isActive = true 
    
    if Reachability.isConnectedToNetwork() == true { 
    
        self.updateDown = true 
    
        Reachability.checkUrl(urlString:Configuration.MyVariables.url, finished: { isSuccess in 
    
    
         if isSuccess == true { 
    
          ProcessingTasks.updateSimulationParams() 
          self.lblUpdate.text = "Les nouveaux paramètres (taux, durée, montant...) ont été mis à jour." 
          self.viewUpdate.backgroundColor = UIColor(red: 151/255, green: 232/255, blue: 84/255, alpha: 1.0) 
          print("ok c bon") 
    
          self.updateDown = false 
    
    
         } else { 
          self.updateDown = true 
          self.lblUpdate.text = "Les nouveaux paramètres (taux, durée, montant...) n'ont pas pu être mis à jour car notre service est actuellement indisponible." 
          self.viewUpdate.backgroundColor = UIColor.red 
         } 
        }) 
    } else { 
        updateDown = true 
        self.lblUpdate.text = "Les nouveaux paramètres (taux, durée, montant...) n'ont pas pu être mis à jour car vous ne disposez pas d'une connexion internet." 
        self.viewUpdate.backgroundColor = UIColor.red 
    } 
    
    self.hideUpdateConstraint.isActive = true 
    self.updateTopConstraint.isActive = false 
    self.updateBottomConstraint.isActive = false 
    self.hideUpdateConstraint.constant = 20 
    self.viewUpdate.isHidden = true 
    
    
    view.addGestureRecognizer(UITapGestureRecognizer(target: self, action: #selector(SimulationViewController.handleTap(_:)))) 
    

回答

0

簡短的建議。 嘗試覆蓋「viewDidAppear」函數而不是「viewDidLoad」。視圖更改前應該觸發「viewDidAppear」。 「viewDidload」僅在視圖第一次加載時觸發。

override func viewDidAppear() {  
    //Enter your code here  
} 
+0

方法不自其超 – Ben

+0

覆蓋任何方法,我的意思只是調用該函數和更改用戶界面,你在viewDidAppear不必在viewDidLoad中。你試過了嗎? –

+0

是的,還不錯,但是這是一個延期,代碼運行,但需要花一些時間來改變視圖 – Ben