SwiftUI @Binding et @State

Dans SwiftUI, @Binding et @State sont des décorateurs qui associés à une déclaration de variable, permettent de simplement lui ajouter des propriétés.

Les vues dans SwiftUI sont organisées en hiérarchie. Pour gérer les interactions entre elles, il faut qu’une vue puisse communiquer des informations à sa vue parente. C’est là qu’interviennent les Bindings

Un binding est une référence à une variable, en général passée en paramètre à une vue enfant. Il fonctionne de manière similaire à un pointeur. Cette référence permet à la vue enfant de lire et de modifier le contenu de la variable.

Le décorateur @State permet de rendre une variable accessible via Binding. 

Une variable @State peut être référencée en tant que Binding en ajoutant le prefixe $ à son nom.

Swift

De nombreuses vues Swift, comme TextField, utilisent des Bindings comme paramètres.

On peut également utiliser ce mécanisme dans une vue personalisée. Voici un simple exemple qui montre comment utiliser State et Binding

Swift

StateButton est une vue qui prend en paramètres un label et un binding. La vue contient un bouton qui, lorsqu’on l’active, met le label dans la variable binding

Swift

StateView est une vue qui contient une variable State valeur. valeur est passée en Binding à deux StateButton, qui peuvent tout les deux modifier valeur lorsqu’ils sont activés.