Changement de vue via une ToolbarView
Rocou
Membre
Bonjour,
J'ai installé une "ToolbarView" sur une application afin de changer de vue au clic sur une icône.
Évidemment chaque vue est réinitialisée à chaque affichage.
Or j'aimerais bien conserver le contenu des TextField quand je passe d'une vue à l'autre.
J'imagine qu'il faut garder les variables associées aux TextField quelque part mais tout ce que j'ai pu tester, ne fonctionne pas, les vues sont toujours réinitialisées. (j'ai bien entendu interrogé GPT4 sans succès)
Mots clés:
Connectez-vous ou Inscrivez-vous pour répondre.
Réponses
On en revient au fameux découpage Modèle-Vue-Contrôleur mais à la sauce SwiftUI. En gros, c'est le modèle métier qui doit conserver les données, et la vue qui est synchronisée dessus. Ainsi quand tu vas changer de page, les vues sont recréées mais comme elles sont alimentées par le modèle — qui a gardé son état — elles vont reprendre les valeurs qui y sont stockées.
En pratique, ça veut dire:
@State
class
qui se conforme àObservableObject
@Published
Une problématique que tu vas avoir est où instancier les objets métier. Il y a plusieurs solutions:
Scene
(ou AppDelegate) puis passer aux vues@Environment
(solution classique en SwiftUI mais que je n'ai pas pratiquée)Bon courage, les choses difficiles en SwiftUI commencent! ChatGPT devrait se montrer plus utile maintenant que tu as les mots-clés.
Bonjour,
Je ne vois pas bien où est le problème.
Dans le viewdidload ou wiewwillappear du viewcontroller, tu peux fixer le texte des textfield comme tu veux.
As-tu essayé cela ?
Merci @Céroce pour les pistes ;-)
@Eric P. je ne suis pas sûr de te suivre. En SwiftUI je n'ai pas l'impression que l'on conserve ces notions.
Tu n'avais précisé que tu es en SwiftUI...
Ha oui, désolé mais j'avais tout de même posté dans la rubrique appropriée
Ha oui, je ne fais pas toujours attention à la rubrique.