2011-12-16 1 views
2

J'ai créé une vue de table comportant plusieurs cellules de vue de table de styles différents, par exemple "CellStyle1" et "CellStyle2". Les cellules ont un aspect différent, mais elles doivent être identiques lorsqu'elles sont sélectionnées, c'est-à-dire qu'elles doivent correspondre à la même nouvelle vue.Problèmes d'utilisation des cellules iOS UITableView personnalisées/erreur "Plusieurs segments avec identificateur"

J'ai configuré les deux cellules pour avoir le même Storyboard Segue - "PushView", pointant vers le même contrôleur de vue.

Cela semble fonctionner OK, mais Xcode génère un avertissement: « identifiant avec plusieurs enchaînements »

Comment puis-je éviter cette erreur? Quelle est la bonne façon de gérer plusieurs cellules personnalisées qui ont l'air différentes mais agissent de la même manière et devraient se retrouver au même endroit?

Celui-ci me gratte la tête.

Merci!

+0

Cet article m'aide –

Répondre

4

Vous pouvez faire un segue par Ctrl glisser du contrôleur de vue au contrôleur de vue de destination. Et puis, en supposant que vous tapotez sur la cellule, c'est l'événement que vous voulez déclencher le segue, dans didSelectRowAtIndexPath, appelez performSegueWithIdentifier.

- (void)performSegueWithIdentifier:(NSString *)identifier sender:(id)sender 

Ou simplement de donner les 2 identifiants différents et dans prepereForSegue vérifier pour l'un ou l'autre identificateur.

+0

Je n'arrive pas à faire marcher ça. J'ai un UITableViewcontroller et quand une cellule est sélectionnée je veux soit aller à 1 vue de destination ou un autre. Il semble que je ne peux pas assigner plus d'un segue à une cellule de table? – Bear

+0

C'est correct, donc vous voulez faire le segue 'générique' et ctrl glisser de l'icône viewController en bas. Puis, dans tableview, didSelectRowAtIndexPath: déterminez quelle séquence exécuter. – agilityvision

+0

J'ai essayé mais ça n'a pas marché. Quand vous dites générique, est-ce une propriété qui doit être définie? – Bear

Questions connexes