2009-03-30 10 views
5

Todos siguen escribiendo sobre la eliminación de una sección. Bueno, parece que no puedo agregar uno.Ayuda para insertar una nueva sección en un TableView

Actualmente, estoy tratando de esta manera (que falla con NSInternalInconsistencyException):

UITableView *tv = (UITableView *) self.tableView; 

if ([tv numberOfSections] == 1) 
{ 
    [tv beginUpdates]; 
    [tv insertSections:[NSIndexSet indexSetWithIndex:0] withRowAnimation:UITableViewRowAnimationTop]; 

    NSLog(@"Inserted.. Brace for impact."); 
    [tv endUpdates]; 
} 

NSLog(@"Section count after update: %d", [tv numberOfSections]); // Never reached 

Si estoy en lo cierto, la inserción de una sección con el índice 0 debe colocar en la parte superior, chocando con todas las otras secciones abajo, ¿derecho? Bueno, si escribo el número de secciones justo después de insertsections, parece que no hay cambios en el número de secciones.

¿Alguna idea?

Johan

Respuesta

3

Sí, gracias a los dos.

Después de algunos malabares, finalmente logré ponerlo en funcionamiento. Fue una combinación de ambas tus sugerencias. Los nuevos datos nunca se insertaron, pero tampoco tuve que aumentar el recuento de filas para el primer elemento insertado, sino solo el segundo.

2

¿Has actualizado también tu fuente de datos? No puede simplemente actualizar la vista de tabla sin actualizar también los datos subyacentes.

+0

Sí .. hm. Sí, lo hago, sigue siendo la misma excepción. Gracias de cualquier manera. – Johan

2

Debe actualizar el mensaje numberOfSectionsInTableView de la clase UITableViewDataSource.

+0

Bueno, hago un [artículo] para ver si hay un motivo para aumentar el número de secciones, si se agrega algún elemento, devuelve 2, de lo contrario 1. ¿O quisiste decir que necesitas activamente enviar un mensaje a numberOfSectionsInTableView? – Johan

+0

No. No quise decir activamente el mensaje numberOfSectionsInTableView. Quise decir lo que aparentemente ya estás haciendo: devolver el número correcto de secciones en la implementación de ese mensaje. –

Cuestiones relacionadas