Liaison List et detailItem
fleurantin
Membre
Lorsque je sélectionne un élément de ma liste j'accède à ma vue détailItem dans laquelle je retrouve mes données chargées par .onAppear() depuis un managedObject . Après modification j'utilise onDisappear() pour récupérer les nouvelles valeurs et les stocker dans mon managedObject. Jusque là tout se passe à merveille. Les modifications apparaissent.
Problème : si je tente de cliquer de nouveau sur la même ligne elle se sélectionne et je ne peux pas accéder au détail item.
À noter que je peux accéder aux autres ligne et lorsque j'accède à une autre ligne je peux ensuite accéder à celle modifiée auparavant.
Une idée ? Peut-être faut-il effectuer un reload de la liste, mais comment le provoquer ?
Connectez-vous ou Inscrivez-vous pour répondre.
Réponses
Bonjour Fleurantin,
Ton message est confus. D'après ce que je comprends, tu es dans la situation d'une combinaison Master-Details, avec une UITableView pour le Master. Déjà, les deux View Controllers sont-ils visibles en même temps à l'écran ?
Est-ce que le problème est que la cellule du Master étant déjà sélectionnée, sélectionner une deuxième fois ne rafraîchit pas les Détails ?
N'hésite pas à ajouter une copie d'écran pour nous rendre la situation plus concrète.
Liste avant clic sur la première
Détail avant retour sur la liste
Clic sur la première ligne => rien ne se passe
Salut Fleurantin,
Tu as bien changé sur ta photo de profil...
Pour ton problème, un peu de ton code aiderait pour essayer de le résoudre.
Je dirais que le problème est que la cellule étant sélectionnée dans la Liste, alors l'appuyer à nouveau ne va pas appeler
tableView(_, didSelectRowAt:)
.Doc d'Apple:
Donc, le plus simple est, dans le storyboard de sélectionner le UITableViewController puis cocher Selection: Clear on Appearance.
> Salut Fleurantin,
>
> Tu as bien changé sur ta photo de profil...
>
> Pour ton problème, un peu de ton code aiderait pour essayer de le résoudre.
C’est ma dernière petite fille. Le temps passe...
J'ai trouvé quelque part que, pour le moment, il y a une bogue avec Xcode 11.3.1, où, en retournant de la page Detail, on ne peut pas cliquer sur la même ligne deux fois ; il faut choisir une autre avant de re-cliquer la première Mais c'est connue chez Apple
Néanmoins, si tu utilises SwifUI, les mises à jour des détails sont propagées automatiquement par Combine.
J'ai ajouté, en pièce-jointe, un projet que je viens de rédiger.
C'est dur d'apprendre le SwiftUI, surtout lorsque il n'y a que très peu de documentation et exemples
Je confirme que c'est dur de se lancer dans SwitfUI sans une documentation correcte (sans parler des notifications d'erreurs souvent farfelues). J'ai eu l'impression de retourner à mes débuts (1990) sur Lightspeed Pascal sans documentation.
Heureusement il y a des exemples par-ci par-là sur la toile.
Merci pour ton envoi. Je vais tester le passage de l'object en @ObservedObject pour automatiser les changements.
Tu m'as donné l'impression que tu travailles avec CoreData, car tu as référencé ManagedObject. Dans ce cas là, c'est déjà prise en charge.
Néanmoins, en t'aidant, ça m'a donné l'opportunité de jouer avec SwiftUI pour la première fois
Un petit topic pour nous donner tes impressions de premier contact ?