dans la viewDidLoad()
UIViewController
il existe une méthode appelée pour mettre à jour une variable de classe. Une fois que je navigue vers un autre contrôleur de vue et que je reviens à celui-ci, les méthodes de délégué de UITableView
sont appelées en premier où cette variable de classe est utilisée. App plante parce que cette variable est en cours de construction dans viewDidLoad()
. Comment ce problème peut-il être résolu? Je vous remercie.Les méthodes déléguées UITableView appelées avant viewDidLoad()
la variable de classe en question:
var showHideDict = Dictionary<Int, Bool>()
le viewDidLoad()
:
override func viewWillAppear() {
super.viewWillAppear()
makeAPICall()
}
l'API méthode d'appel:
func makeAPICall() {
// create helper object
let helper = ModelHelper()
helper.createModels(receivedDict: result! as NSDictionary)
// store the showHideDict
for index in 0...(Modelclass.models.count - 1) {
self.showHideDict[index] = true
}
DispatchQueue.main.async {
self.tableView.reloadData()
}
}
en publiant du code ne paraphrasant pas votre code dans les phrases. Jusqu'à présent, il semble que cela devrait fonctionner soit hors de la boîte ou un duplicata de https://stackoverflow.com/questions/46521391/xcode-swift-viewdidload – luk2302
ajouté le code au lieu de paraphraser. Merci d'avoir répondu. –
Pourquoi appelez-vous 'viewWillAppear()'? Cela ne devrait-il pas être 'super.viewWillAppear()'? – toddg