ios uitableview iboutlet

ios - Extraño error al agregar elementos a las células del prototipo en el guión gráfico-IB



uitableview iboutlet (7)

Tengo un proyecto bastante grande (~ 20 escenas). Uno de los cuales es TableViewController con una clase UITableViewController personalizada. Le di a la celda un identificador de reutilización y le agregué una etiqueta. Cuando intento y Ctrl + arrastrar la etiqueta al archivo de cabecera UITableViewController para crear una salida, me sale el siguiente error:

error: Configuración no válida: la conexión "tableInfoView" no puede tener un objeto prototipo como su destino.

¿Que es esto? ¿Estoy pasando por alto algo obvio? ¿O necesito crear una clase de celda personalizada y arrastrar la salida a eso? Si es así, ¿cómo especifico los datos que se muestran de forma exclusiva para cada celda desde UITableViewController?


De hecho, no puede hacer una salida de un prototipo de celda dinámica en el controlador de vista delegado UITableView .

Tendrás que subclasificar UITableViewCell y luego atribuir esta clase a tu prototipo.

Luego puede presionar Ctrl-Drag desde la etiqueta hasta el archivo de cabecera de la subclase UITableViewCell .

Finalmente, puede acceder a este punto de venta en el código de delegado después de haber importado el archivo de encabezado UITableViewCell en él.

Apple lo documenta en la sección "La técnica para el contenido de fila dinámica".


Después de hacer todas las cosas bien si el problema aún existe, simplemente eliminé todos los puntos de venta y los volví a unir cuidadosamente y funcionó muy bien para mí.


Enfrenté el mismo problema pero luego resultó que fue solo un error tonto. Erróneamente arrastré la etiqueta de Cell a la @interface mi controlador

Este también podría ser tu problema. solo revise una vez.


Establecí el identificador de reutilización correcto usado en el archivo .m en el Guión gráfico para la celda Prototipo. Tuve la misma situación y esto me ayudó.


Etiquete la etiqueta y podrá acceder a la etiqueta en cualquier lugar del controlador de visualización, como con viewWithTag en la vista de tabla.

UILabel *destinationLabel = (UILabel *)[self.tableView viewWithTag:1]; destinationLabel.text = @"Label Destaination";


Yo tuve el mismo error yo mismo. Solo para agregar una causa de raíz más poderosa para lectores futuros:

En mi caso, copié un control (un Botón en este caso) de un prototipo de celda al siguiente y la acción todavía se refería a la celda vecina. Mi mesa tiene varias celdas de prototipos diferentes.

El hecho de que, en realidad, era una subclase adecuada de UITableViewCell que estaba conectada correctamente al prototipo de la célula, dificultaba realmente ver el error.


o podría darle una etiqueta a la etiqueta (por ejemplo, 100) y usar

myLabel = [myTableView viewForTag:100];

para obtener la etiqueta