Error extraño al agregar elementos a celdas prototipo en storyboard-IB


Tengo un proyecto bastante grande (~20 escenas). Uno de los cuales es un TableViewController con una clase UITableViewController personalizada. Le he dado a la celda un identificador de reutilización y le he añadido una etiqueta. Cuando intento y Ctrl + Arrastre la etiqueta al archivo de encabezado UITableViewController para crear una salida, obtengo el siguiente error:

Error: Configuración ilegal: Conexión "tableInfoView" no puede tener un objeto prototipo como destino.

¿Qué es esto? Soy yo ¿pasando por alto algo obvio? ¿O necesito crear una clase de celda personalizada y arrastrar la toma a eso? Si es así, ¿cómo puedo especificar los datos que se muestran de forma única para cada celda del controlador UITableViewController?

Author: Dan Beaulieu, 2012-08-28

7 answers

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

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

Luego puede Ctrl-Arrastrar desde la etiqueta al archivo de encabezado de la subclase UITableViewCell.

Finalmente puede acceder a esta salida en el código delegado después de haber importado el archivo de encabezado UITableViewCell en él.

Esto está documentado por Apple allí en " La Técnica para Fila Dinámica Sección "Contenido".

 67
Author: dulgan,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2012-10-25 11:40:20

O puede darle a la etiqueta una etiqueta (por ejemplo, 100) y usar

myLabel = [myTableView viewForTag:100];

Para obtener la etiqueta

 10
Author: Martin Lockett,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2014-06-23 13:47:54

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

En mi caso copié un control (un botón en este caso) de una celda prototipo a la siguiente y la acción todavía se refería a la celda vecina. Mi mesa tiene varias células prototipo diferentes.

El hecho de que acutalmente era una subclase adecuada de UITableViewCell que estaba correctamente conectada a la célula prototipo hizo difícil ver realmente el error.

 2
Author: Hermann Klecker,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2013-03-03 12:24:20

Me enfrenté al mismo problema, pero más tarde resultó que era solo un error tonto. Por error arrastré la etiqueta de la celda a la de mi controlador@interface

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

 1
Author: thesummersign,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2013-01-22 12:22:07

Etiquete la etiqueta y puede llegar a la etiqueta en cualquier lugar en viewcontroller como con Viewwittag desde la vista de tabla.

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


    destinationLabel.text = @"Label Destaination";
 1
Author: Reaper,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2014-06-02 08:20:04

Establecer el identificador de reutilización correcto utilizado en .archivo m en el guion gráfico para la celda prototipo.Yo tenía la misma situación y esto me ayudó

 -1
Author: Wodjefer,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2013-11-22 17:09:08

Después de hacer todo bien si el problema todavía existe, simplemente eliminó todos los puntos de venta y se unió a ellos con cuidado y funcionó muy bien para mí.

 -2
Author: Shahid Aslam,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2014-03-27 09:47:15