viewDidLoad中的AsyncTask

时间:2016-12-28 14:05:56

标签: swift viewdidload

我在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(_:))))
    

1 个答案:

答案 0 :(得分:0)

简短的建议。 尝试覆盖" viewDidAppear"函数而不是" viewDidLoad"。 " viewDidAppear"应在视图更改之前触发。 " viewDidLoad中"仅在视图首次加载时触发。

override func viewDidAppear() {      
    //Enter your code here       
}
相关问题