Acabo de crear una aplicación y comencé a conectar @ IBOutlet al guión gráfico. Estoy conectando algunos de ellos a etiquetas en una celda prototipo UITableViewCell con un estilo básico. Cuando lo conecto, aparece este error en el Guión gráfico:
El Outlet detailText del TableViewController al UILabel no es válido. Los puntos de venta no se pueden conectar a contenido repetido.
¿Alguien me puede ayudar? Lo configuré como siempre lo hago con éxito, pero esta vez me arrojó este error.
ios
storyboard
Tomblasta
fuente
fuente
Respuestas:
Cree una subclase de celda de vista de tabla y configúrela como la clase del prototipo. Agregue los enchufes a esa clase y conéctelos. Ahora, cuando configura la celda, puede acceder a las salidas.
fuente
Hay dos tipos de celdas de vistas de tabla que se le proporcionan a través del guión gráfico: son prototipos dinámicos y celdas estáticas
1. Prototipos dinámicos
Desde el nombre, este tipo de celda se genera dinámicamente. Se controlan a través de su código, no del guión gráfico. Con la ayuda del delegado y la fuente de datos de la vista de tabla, puede especificar el número de celdas, las alturas de las celdas y el prototipo de celdas mediante programación.
Cuando arrastra una celda a su vista de tabla, está declarando un prototipo de celdas. Luego puede crear cualquier cantidad de celdas basadas en este prototipo y agregarlas a la vista de tabla mediante el
cellForRow
método, mediante programación. La ventaja de esto es que solo necesita definir 1 prototipo en lugar de crear todas y cada una de las celdas con todas las vistas agregadas por usted mismo (Ver celda estática).Entonces, en este caso, no puede conectar elementos de la interfaz de usuario en el prototipo de celda a su controlador de vista. Solo tendrá un objeto de controlador de vista iniciado, pero puede tener muchos objetos de celda iniciados y agregados a su vista de tabla. No tiene sentido conectar el prototipo de celda al controlador de vista porque no puede controlar varias celdas con una conexión de controlador de vista. Y obtendrá un error si lo hace.
Para solucionar este problema, debe conectar su etiqueta de prototipo a un
UITableViewCell
objeto. AUITableViewCell
también es un prototipo de celdas y puede iniciar tantos objetos de celda como desee, cada uno de ellos se conecta a una vista que se genera a partir del prototipo de celda de la tabla del guión gráfico.Finalmente, en su
cellForRow
método, cree la celda personalizada de laUITableViewCell
clase y haga cosas divertidas con la etiqueta2. Células estáticas
Por otro lado, las celdas estáticas están configuradas a través del guión gráfico. Tienes que arrastrar elementos de la interfaz de usuario a todas y cada una de las celdas para crearlos. Controlarás los números de celda, las alturas, etc. desde el guión gráfico. En este caso, verá una vista de tabla que es exactamente la misma desde su teléfono en comparación con lo que creó desde el guión gráfico. Las celdas estáticas se usan con más frecuencia para configurar la página, que las celdas no cambian mucho.
Para controlar los elementos de la interfaz de usuario para una celda estática, necesitará conectarlos directamente a su controlador de vista y configurarlos.
fuente
+100
Si está utilizando una vista de tabla para mostrar la Configuración y otras opciones (como lo hace la aplicación de Configuración integrada), puede configurar el Contenido de la vista de tabla en Celdas estáticas en el Inspector de atributos . Además, para hacer esto, debe incrustar su Vista de tabla en una instancia de UITableViewController.
fuente
O no tiene que usar IBOutlet para referirse al objeto en la vista. Puede asignar un valor de etiqueta a la etiqueta en la tabla ViewCell , por ejemplo, establecer la etiqueta en 123 (el inspector de atributos puede hacerlo). Entonces puede acceder a la etiqueta por
fuente
Conmigo tengo un
UIViewcontroller
, y en él tengo una vista de tabla con una celda personalizada. Mapeo mi salida de UILabel enUItableviewcell
elUIViewController
entonces recibí el error.fuente
Como la mayoría de la gente ha señalado que la subclasificación
UITableViewCell
resuelve este problema. Pero la razón no está permitida porque Apple define la celda prototipo ( UITableViewCell ) y no puede agregarle ninguna de sus propias salidas.fuente
A veces, Xcode no puede controlar correctamente la conexión de salida de la celda.
De alguna manera, la etiqueta / botón de mi celda actual ha conectado otra celda, simplemente los elimino y el error desaparece.
fuente
Haga clic en el simulador, navegue a la ventana y habilite Biseles del dispositivo
fuente