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.
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
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
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.