Puisque la vue est une structure, il est possible d'effectuer une partie du travail d'initalisation en définissant un constructeur.
Le travail du constructeur survient très tôt dans le cycle de vie d'une application SwiftUI. Pour cette raison, certaines opérations d'initialisation ne peuvent pas être réalisées dans le constructeur.
La méthode onAppear() est un endroit intéressant pour effectuer le travail d'initialisation puisque le code qu'elle contient sera exécuté beaucoup plus tard dans le cycle de vie, juste avant que la vue soit affichée.
var body: some View {
... // vue à laquelle onAppear est rattaché
.onAppear(perform: {
maFonction()
})
}
func maFonction() {
maVariableDEtat = "une valeur"
...
}
Dans le cas où la fonction à exécuter ne reçoit aucun paramètre, il est possible de simplifier la syntaxe en enlevant les accolades dans .onAppear de même que les parenthèses à la fonction.
var body: some View {
... // vue à laquelle onAppear est rattaché
.onAppear(
perform: maFonction
)
}
func maFonction() {
maVariableDEtat = "une valeur"
...
}
« SwiftUI View Lifecycle ». vadimbulavin.com. https://www.vadimbulavin.com/swiftui-view-lifecycle/
« Running Code Only Once in SwiftUI ». https://www.swiftjectivec.com/. https://www.swiftjectivec.com/swiftui-run-code-only-once-versus-onappear-or-task/
▼Publicité