Passer un paramètre à un VC
Bonjour à toutes et à tous,
Je reprends le développement. Nouveautés : sur mon projet Improov, je me mets aux storyboards ; sur un nouveau projet, je me mets à Swift. J'aurai donc sûrement quelques questions...
• J'ai un NavigationController, appelons-le NC_stbo
(stbo
= "storyboard"). Il n'a pas de custom class.
• "Dans NC_stbo
", j'ai un TableViewController "statique" : appelons-le staticTVC_stbo
. Il n'a pas de custom class. Il a 3 lignes, toujours les mêmes. Quand je touche une des lignes, c’est la table view suivante qui est affichée :
• Il est suivi (dans NC_stbo
, toujours) par un TableViewController "dynamique" : le contenu de ce table view dépend de laquelle des lignes a été touchée. Appelons-le dynTVC_stbo
. Il a une custom class associée, appelons-la dynTVC_class
.
Pour l'instant, j'ai control-cliqué-glissé chacune des lignes de staticTVC_stbo
(l'option "selection") vers dynTVC_stbo
.
Comment faire pour prévenir dynTVC_stbo
de quelle ligne a été touchée ?
Je vois plusieurs possibilités ; mais toutes nécessitent de créer une classe staticTVC_class
custom.
Que feriez-vous ?
Merci
Colas
Réponses
Pour autant que je comprenne ton problème, la solution est ..
Merci.
J’ai essayé de présenter ma question (simple) de la façon la plus claire... mais j’ai peut-être du coup compliqué les choses.
Euh .. oui .. t'as beaucoup complexifié les choses.
De toutes manières il n'y a pas 36 solutions. Pour passer une information à un viewController le plus simple est de passer par une propriété, ce qui nécessite la création d'une classe spécifique.
Merci
J'imaginais que je pouvais m'en sortir avec les tags (?) et ensuite (de quelle manière ?) "catcher" l'appel à la deuxième Table View pour faire les updates dont j'ai besoin (changer la data source).
Une image :
Jamais avec les tags !!!
Et pourquoi quatre segues entre les deux ViewControllers ? Il ne faut qu'un.
Tes noms pour les composants sont vachement bizarre, voire presque incompréhensible.
C'est très rare de devoir créer ue class pour le NavigationController et, si tu voulais faire, tu devrais utiliser un nom comme NavigationController.
Pour les autres classes, tu devrais utiliser les noms qui parlent de la fonctionnalité, comme MenuViewController pour le premier et (peut-être) QuestionsViewController. Mais, de toute façon, arrêtes d'utiliser les noms cryptiques !
Et, pourquoi tu as "composé" les cellules avec les label et les images ? Il ne faut que choisir les options : Style - Basic et Accessory - Disclosure Indicator.
Si tu parlais plus de ce que tu veux faire, nous pouvons t'aider plus.
Merci de ta réponse Joanna.
Les noms que j'ai donnés ne sont pas les noms que j'utilise dans mon appli.
Les 4 flèches que tu vois ne sont pas des Segue (en tout cas je ne crois pas), j'ai juste drag-droppé les UICell sur le deuxième TableView.
Ce que je veux faire, c'est simple : on clique sur une des trois lignes, ça amène dans l'écran suivant avec une liste différente selon la ligne qui a été touchée. Je sais le faire avec du code. Je vais essayé de le faire "à la mode storyboard"
PS : oui, je n'ai sous-classé NavigationController.
Dans le storyboard :
N.B. pas de segue entre les cellules et le deuxième ViewController, seulement un entre les deux ViewControllers
Dans le code :
Comment fais-tu @Joanna Carter pour créer un Segue entre les View Controller ?
J'ai fait comme cela :
0) J'ai Right-cliqué sur l'icône jaune
1)Puis "Manual Segue"
2)Puis "Show"
Ou on peut Ctrl-glisser de l'icône jaune vers l'autre controller, puis choisir Show :
Mais n'oublies pas de mettre l'identifiant pour le segue.
En regardant ton image, il ne faut pas connecter les cellules avec les segues !
Merci !