J'ai un assez gros projet (~ 20 scènes). L'un d'eux est un TableViewController avec une classe UITableViewController personnalisée. J'ai donné à la cellule un identifiant de réutilisation et y ai ajouté une étiquette. Lorsque j'essaie de faire Ctrl + glisser l'étiquette vers le fichier d'en-tête UITableViewController pour créer une sortie, j'obtiens l'erreur suivante:
erreur: Configuration illégale: la connexion "tableInfoView" ne peut pas avoir un objet prototype comme destination.
Qu'est-ce que c'est? Suis-je en train d'oublier quelque chose d'évident? Ou dois-je créer une classe de cellule personnalisée et y faire glisser la sortie? Si oui, comment puis-je spécifier les données qui sont affichées de manière unique pour chaque cellule à partir de UITableViewController?
En fait, vous ne pouvez pas simplement créer une sortie à partir d'un prototype de cellule dynamique dans le contrôleur de vue délégué UITableView
.
Vous devrez sous-classer UITableViewCell
puis attribuer cette classe à votre prototype.
Ensuite, vous pouvez Ctrl-Glisser de l'étiquette vers le fichier d'en-tête de sous-classe UITableViewCell
.
Enfin, vous pouvez accéder à cette sortie dans le code délégué après y avoir importé le fichier d'en-tête UITableViewCell
.
Ceci est documenté par Apple there dans la section "The Technique for Dynamic Row Content").
ou vous pourriez donner à l'étiquette une étiquette (par exemple 100) et utiliser
myLabel = [myTableView viewForTag:100];
obtenir le label
Marquez l'étiquette et vous pouvez atteindre l'étiquette n'importe où dans le contrôleur de vue comme avec viewWithTag à partir de la vue de table.
UILabel *destinationLabel = (UILabel *)[self.tableView viewWithTag:1];
destinationLabel.text = @"Label Destaination";
J'ai eu la même erreur moi-même. Juste pour ajouter une autre cause fondamentale potentielle pour les futurs lecteurs:
Dans mon cas, j'ai copié un contrôle (un bouton dans ce cas) d'une cellule prototype à la suivante et l'action faisait toujours référence à la cellule voisine. Ma table a plusieurs cellules prototypes différentes.
Le fait qu'il s'agissait réellement d'une sous-classe appropriée de UITableViewCell qui était correctement connectée à la cellule prototype a rendu difficile de voir réellement l'erreur.
J'ai fait face au même problème mais plus tard, il s'est avéré que c'était juste une erreur stupide. J'ai par erreur glissé l'étiquette de Cell vers le @interface
De mon contrôleur
Cela pourrait aussi être votre problème. il suffit de cocher une fois.