Acabo de crear una aplicación y comencé a conectar @ IBOutlet's al guión gráfico. Estoy conectando algunos de ellos a etiquetas en una celda de prototipo UITableViewCell con un estilo básico. Cuando lo conecto, aparece este error en el Storyboard:
La salida detailText de TableViewController a UILabel no es válida. Los puntos de venta no se pueden conectar a contenido repetido.
¿Alguien me puede ayudar? Lo configuré de la manera que siempre lo hago con éxito, pero esta vez me ha arrojado este error.
Cree una subclase de celda de vista de tabla y configúrela como la clase del prototipo. Agregue los puntos de venta a esa clase y conéctelos. Ahora cuando configuras la celda puedes 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
A partir del 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, la altura 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. A continuación, puede crear cualquier cantidad de celdas basadas en este prototipo y agregarlas a la vista de tabla a través del 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 IU en el prototipo de celda a su controlador de vista. Solo tendrá un objeto controlador de vista iniciado, pero puede haber iniciado y agregado muchos objetos de celda 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. A 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 de su prototipo de celda de tabla de guión gráfico.
Finalmente, en su cellForRow
método, cree la celda personalizada de la UITableViewCell
clase 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. Celdas 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á 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 igual desde su teléfono en comparación con lo que creó a partir del guión gráfico. Las celdas estáticas se utilizan con mayor frecuencia para configurar la página, que las celdas no cambian mucho.
Para controlar los elementos de la interfaz de usuario de una celda estática, de hecho, deberá conectarlos directamente a su controlador de vista y configurarlos.
Si está utilizando una vista de tabla para mostrar la configuración y otras opciones (como lo hace la aplicación de configuración incorporada), 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.
O no tiene que usar IBOutlet para hacer referencia al objeto en la vista. Puede asignar un valor de etiqueta a la etiqueta en tableViewCell , por ejemplo, establecer la etiqueta en 123 (esto puede hacerlo el inspector de atributos). Entonces puede acceder a la etiqueta
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
}
Conmigo tengo un UIViewcontroller
, y en él tengo una vista de tabla con una celda personalizada. Mapeo mi salida de UILabel en UItableviewcell
el y UIViewController
luego obtuve el error.
Como la mayoría de la gente ha señalado, la subclasificación UITableViewCell
resuelve este problema. Pero la razón por la que esto no está permitido es que Apple define la celda prototipo ( UITableViewCell ) y usted no puede agregarle ninguna de sus propias salidas.
A veces, Xcode no podía 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 las elimino y el error desaparece.
La estrella de HGTV, Christina Hall, revela que le diagnosticaron envenenamiento por mercurio y plomo, probablemente debido a su trabajo como manipuladora de casas.
Recientemente salió a la luz un informe policial que acusa a la estrella de 'Love Is Blind', Brennon, de violencia doméstica. Ahora, Brennon ha respondido a los reclamos.
Conozca cómo Wynonna Judd se dio cuenta de que ahora es la matriarca de la familia mientras organizaba la primera celebración de Acción de Gracias desde que murió su madre, Naomi Judd.
Descubra por qué un destacado experto en lenguaje corporal cree que es fácil trazar "tales paralelismos" entre la princesa Kate Middleton y la princesa Diana.
Los inodoros arrojan columnas de aerosol invisibles con cada descarga. ¿Como sabemos? La prueba fue capturada por láseres de alta potencia.
Air travel is far more than getting from point A to point B safely. How much do you know about the million little details that go into flying on airplanes?
The world is a huge place, yet some GeoGuessr players know locations in mere seconds. Are you one of GeoGuessr's gifted elite? Take our quiz to find out!
¿Sigue siendo efectivo ese lote de repelente de insectos que te quedó del verano pasado? Si es así, ¿por cuánto tiempo?
Las mujeres del Reino Unido acuden a las urnas para las elecciones especiales de hoy en un aniversario particularmente apropiado. Han pasado 104 años desde que Emily Wilding Davison murió por la causa del sufragio femenino, pisoteada hasta la muerte en medio de una carrera de caballos de alto perfil, frente al Rey y la Reina.
Tapas elásticas de silicona de Tomorrow's Kitchen, paquete de 12 | $14 | Amazonas | Código promocional 20OFFKINJALids son básicamente los calcetines de la cocina; siempre perdiéndose, dejando contenedores huérfanos que nunca podrán volver a cerrarse. Pero, ¿y si sus tapas pudieran estirarse y adaptarse a todos los recipientes, ollas, sartenes e incluso frutas en rodajas grandes que sobran? Nunca más tendrás que preocuparte por perder esa tapa tan específica.
Hemos pirateado algunas ciudades industriales en esta columna, como Los Ángeles y Las Vegas. Ahora es el momento de una ciudad militar-industrial-compleja.
Un minorista está enlatando su sección de tallas grandes. Pero no están tomando la categoría solo en línea o descontinuándola por completo.
El equipo está a la espera de las medallas que ganó en los Juegos Olímpicos de Invierno de 2022 en Beijing, ya que se está resolviendo un caso de dopaje que involucra a la patinadora artística rusa Kamila Valieva.
Miles de compradores de Amazon recomiendan la funda de almohada de seda Mulberry, y está a la venta en este momento. La funda de almohada de seda viene en varios colores y ayuda a mantener el cabello suave y la piel clara. Compre las fundas de almohada de seda mientras tienen hasta un 46 por ciento de descuento en Amazon
El jueves se presentó una denuncia de delito menor amenazante agravado contra Joe Mixon.
El Departamento de Policía de Lafayette comenzó a investigar a un profesor de la Universidad de Purdue en diciembre después de recibir varias denuncias de un "hombre sospechoso que se acercaba a una mujer".
Al igual que el mundo que nos rodea, el lenguaje siempre está cambiando. Mientras que en eras anteriores los cambios en el idioma ocurrían durante años o incluso décadas, ahora pueden ocurrir en cuestión de días o incluso horas.
Estoy de vuelta por primera vez en seis años. No puedo decirte cuánto tiempo he estado esperando esto.
“And a river went out of Eden to water the garden, and from thence it was parted and became into four heads” Genesis 2:10. ? The heart is located in the middle of the thoracic cavity, pointing eastward.
Creo, un poco tarde en la vida, en dar oportunidades a la gente. Generosamente.