¿Puedo usar una sola celda de prototipo en varias tablas?

Tengo dos vistas diferentes en dos controlleres diferentes. Pero las celdas, que necesito mostrar en ellas, se ven idénticas. He creado una célula prototipo en una tablaView y subclasificada UiTableViewCell. Ahora, si quiero usar la misma celda en un controller diferente, ¿cómo puedo usarlo?

Si acabo de importar ese file customCell en el nuevo controller y lo dejo usando el mismo identificador que aparece en el guión gráfico, no funcionará. Dice

Error de aserción en – [UITableView _configureCellForDisplay: forIndexPath:]

Terminar la aplicación debido a la exception no detectada 'NSInternalInconsistencyException', razón: 'UITableView dataSource debe devolver una celda desde tableView: cellForRowAtIndexPath:'

Entonces, claramente significa que la celda es nula. Entonces, ¿cómo puedo crear una instancia de la misma celda desde el guión gráfico? ¿Es posible o tengo que crear una customCell diferente para la nueva tabla también?

K … Lo tengo. Ante todo,

NO puedo usar una celda prototipo en dos tablas diferentes. Pero, puedo usar la misma subclass tableViewCell en dos vistas de tabla diferentes.

Para lograrlo, basta con copyr la celda prototipo de un controller y pegarla como una celda prototipo de la otra vista de tabla. La class de la vista de tabla pegada sigue siendo la misma. Simplemente cambie el reuseIdentifier. y úselo.

Editar: si su celda tiene una interfaz de usuario bastante complicada, entonces tiene más sentido crear xib por separado para la celda sola. Luego, registre programáticamente el xib con la vista de tabla. De esta forma, solo tendrá una copy de la celda y será mucho mejor mantenerla cuando haya cambios en la interfaz de usuario.

Puede usar la misma celda de prototipo en diferentes controlleres de vista, solo debe eliminarla de la vista de tabla del controller en el que la diseñó.

override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell { let viewControllerInWhichCellWasDefined = tabBarController?.viewControllers?[0] let cell = viewControllerInWhichCellWasDefined.tableView.dequeueReusableCell(withIdentifier: "identifier", for: indexPath) return cell } 

Si crea una celda personalizada en XIB, debería funcionar bien. Sin embargo, sospecho que el identifier la célula causó el problema. Intente cambiar el identificador de su celda para cada controller de vista de tabla.

Si no es así, es posible que desee publicar el código fuente

He usado la misma UITableViewCell en diferentes aplicaciones. solo copie una TableViewCell a la otra aplicación. Es decir, ambas aplicaciones tienen el mismo layout y tal. Las aplicaciones no pertenecen al mismo espacio de trabajo. La configuration funciona bien, sin problemas ni errores … simplemente no sé si esa es una buena práctica.