viewDidLoad 中的 AsyncTask
AsyncTask in viewDidLoad
我正在我的 viewDidLoad 中使用异步任务函数,通过返回的响应我正在更改视图(颜色、文本...),但我有 "errors":
有时当我改变视图并返回视图时,我的视图背景不是橙色,而是绿色(绿色在asynctask 函数)所以当我回到视图时它不正常它必须重新加载它...
有时候view还是橙色背景,但是函数已经通过了...
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(_:))))
简短的建议。
尝试覆盖 "viewDidAppear" 函数而不是 "viewDidLoad"。 "viewDidAppear" 应该在视图更改之前触发。 "viewDidload" 仅在首次加载视图时触发。
override func viewDidAppear() {
//Enter your code here
}
我正在我的 viewDidLoad 中使用异步任务函数,通过返回的响应我正在更改视图(颜色、文本...),但我有 "errors":
有时当我改变视图并返回视图时,我的视图背景不是橙色,而是绿色(绿色在asynctask 函数)所以当我回到视图时它不正常它必须重新加载它...
有时候view还是橙色背景,但是函数已经通过了...
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(_:))))
简短的建议。 尝试覆盖 "viewDidAppear" 函数而不是 "viewDidLoad"。 "viewDidAppear" 应该在视图更改之前触发。 "viewDidload" 仅在首次加载视图时触发。
override func viewDidAppear() {
//Enter your code here
}