Picker : se servir de la selection SwiftUI

Bonjour,

je suis en train de créer une appli avec un système de questions/réponses.
Les différentes réponses s’affichent dans un Picker ; une fois la réponse choisi on appuie sur un bouton « valider » qui compare la $selection avec la bonne réponse. (Rien de bien compliqué.)

Dans un souci de propreté du code j’aimerais séparer les Views et la logique :

  • Pour le moment, toute ma logique est dans le bouton « valider ».

  • Ce que j’aimerais, c’est avoir une fonction de ma class « questionnaire » qui réalise la comparaison.

  • Le problème : je n’arrive pas à relier ma class et la $selection du Picker sans passer par du code directement dans les Views.

Des idées pour exporter la $selection ? ou la lier à une variable de ma class ?

Bonjour Renaud,
Je n’ai peut être pas tout suivi, mais dans ta view, tu peux instancier un object de ta classe questionnaire, dans l’init tu lui donnes les éléments venant de $selection. Et ensuite tu peux faire des appels de fonctions ou autre de ton object. non ?

Euh … tu n’as pas oublié de préciser le type de framework graphique utilisé ? UIKit ou SwiftUI ne gèrent franchement pas les Pickers de la même manière !

Bonjour Sylvain,
oui ce n’est pas une mauvaise idée, je vais essayer quelque chose dans ce goût là.
Le problème qui va se poser je pense c’est que mon bouton « valider » n’est pas dans la même vue que le Picker ; et mon objet est instancié plus « haut » dans la vue mère. (Je n’ai pas tout le temps besoin du Picker)

Certes ! J’oublie que certain ont commencé avec UIKit… :sweat_smile:

Du coup, en y réfléchissant la solution était en fait très (trop) simple :

=> il suffit d’une fonction qui prend un paramètre « selection », et d’appeler la fonction avec la $selection.

Avoir la tête toute la journée dans son code c’est pas le mieux pour prendre du recul :sweat_smile: :sweat_smile: :sweat_smile:

1 J'aime