43 votes

Étrange erreur lors de l'ajout d'éléments de prototypes de cellules dans le storyboard-IB

J'ai un gros projet (~20 scènes). Dont l'une est un TableViewController avec un UITableViewController classe. J'ai donné à la cellule une Réutilisation de l'Identificateur et l'ajout d'une étiquette. Quand je l'ai essayer et Ctrl+faire Glisser l'étiquette de la UITableViewController fichier d'en-tête pour créer une prise de courant, j'obtiens l'erreur suivante:

erreur: Illégal de Configuration: Connexion "tableInfoView" ne peut avoir un objet prototype de sa destination.

Qu'est-ce que cela? Suis-je surplombant quelque chose d'évident? Ou dois-je créer une classe cellule et faites glisser la prise pour qui? Si oui, comment puis-je spécifier les données qui s'affiche de manière unique pour chaque cellule de la UITableViewController?

67voto

dulgan Points 1707

En fait, vous ne pouvez pas simplement faire une prise de courant à partir d'une dynamique de la cellule prototype dans l' UITableView délégué-vue-contrôleur.

Vous aurez pour sous - UITableViewCell puis attribut de cette classe à votre prototype.

Vous pouvez ensuite Ctrl-faites Glisser à partir de l'Étiquette de l' UITableViewCell sous-classe fichier d'en-tête.

Enfin, vous pouvez accéder à cette prise de délégué code après avoir importé l' UITableViewCell fichier d'en-tête.

Ceci est documenté par Apple il y a "La Technique de la Dynamique de Ligne de Contenu".

10voto

Martin Lockett Points 605

ou vous pourriez donner à l'étiquette une étiquette (par exemple 100) et l'utilisation

myLabel = [myTableView viewForTag:100];

pour obtenir le label

2voto

Hermann Klecker Points 8461

J'ai eu la même erreur que moi-même. Juste pour ajouter un plus potantial cause pour les futurs lecteurs:

Dans mon cas, j'ai copié un contrôle (Bouton, dans ce cas) d'un prototype de cellule pour le prochain et l'action appelle encore la voisine d'en cellule. Ma table a plusieurs prototypes de cellules.

Le fait qu'il acutally était un bon sous-classe de UITableViewCell qui a été correctement raccordé pour le prototype de cellule, il est difficile de voir réellement l'erreur.

2voto

Reaper Points 58

Étiquette de l'étiquette et vous pourrez rejoindre le label n'importe où dans le viewcontroller comme avec viewWithTag à partir de l'affichage de la table.

    UILabel *destinationLabel = (UILabel *)[self.tableView viewWithTag:1];


    destinationLabel.text = @"Label Destaination";

1voto

geekay Points 824

J'ai connu le même problème, mais plus tard il s'est avéré que c'était juste une stupide erreur. J'ai malencontreusement glissé l'étiquette de la Cellule à mon contrôleur @interface

Ce pourrait être votre problème. il suffit de traverser case à la fois.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X