para kit home espaƱol domotica compatible casa apple accesorios ios storyboard

kit - Los puntos de venta no se pueden conectar a contenido repetido iOS



homekit compatible (6)

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 ninguno de sus propios puntos de venta.

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.


Conmigo tengo un UIViewcontroller , y en él tengo una vista de tabla con una celda personalizada. Mapeo mi salida de UILabel en UItableviewcell al UIViewController luego UIViewController el error.


Cree una subclase de celda de vista de tabla y configúrela como la clase del prototipo. Agregue las salidas a esa clase y conéctelas. Ahora, cuando configura la celda, puede acceder a las salidas.


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 la vista de tabla, está declarando un prototipo de celdas. Luego puede crear cualquier cantidad de celdas cellForRow en este prototipo y agregarlas a la vista de tabla mediante el método cellForRow , 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 objeto UITableViewCell . Un UITableViewCell 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 método cellForRow , cree la celda personalizada de la clase UITableViewCell y haga cosas divertidas con la etiqueta

override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell { let cell = tableView.dequeueReusableCell(withIdentifier: "yourCellIdentifier") as! YourCell cell.label.text = "it works!" return cell }

2. 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 IU 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.


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 (esto puede hacerlo el inspector de atributos). Entonces puede acceder a la etiqueta por

override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell { let cell = tableView.dequeueReusableCell(withIdentifier: "someID", for: indexPath) let label = cell.viewWithTag(123) as! UILabel //refer the label by Tag switch indexPath.row { case 0: label.text = "Hello World!" default: label.text = "Default" } return cell }


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.