estoy usando un UITableViewController
para una tabla en mi aplicación, y he añadido un NSFetchedResultsController
para proporcionar los datos que mostrar en la tabla (ajuste self
ya que es delegado).Añadir fila adicional a un UITableView gestionado por NSFetchedResultsController
Sin embargo, me gustaría agregar una celda única como la última celda de la tabla, sin relación con los elementos producidos por el predicado NSFetchedResultsController
, quiero que esta celda siempre esté en la parte inferior de la tabla.
He intentado simplemente añade 1 a estos métodos en la tabla de origen vista de datos:
- (NSUInteger)numberOfSectionsInTableView:(UITableView *)sender
{
return [[self.fetchedResultsController sections] count] + 1;
}
- (NSUInteger)tableView:(UITableView *)sender numberOfRowsInSection:(NSUInteger)section
{
return [[[self.fetchedResultsController sections] objectAtIndex:section] numberOfObjects] + 1;
}
Y luego coger el caso en que se está generando esta fila adicional al igual que (la tabla sólo tiene 1 sección) :
- (UITableViewCell *)tableView:(UITableView *)sender
cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
if (indexPath.row == [self.fetchedResultsController.fetchedObjects count]) {
//Generate the last cell in table.
} else {
//Generate the rest of the cells like normal.
}
return nil; //To keep the compiler happy.
}
Esto comprueba si el índice es la última celda y trata adecuadamente.
Sin embargo todavía estoy recibiendo el siguiente error en tiempo de ejecución:
*** Terminating app due to uncaught exception 'NSRangeException',
reason: '*** -[__NSArrayM objectAtIndex:]: index 1 beyond bounds [0 .. 0]'
Cualquier idea de lo que está causando esto? ¿O hay una forma mejor de agregar una fila adicional a una vista de tabla controlada por NSFetchedResultsController?
Ah sí, esa sería en realidad una forma mucho mejor de implementar esto, gracias. (Evidentemente, todavía soy muy nuevo en la programación de iOS :-)) –
Sí, se puso muy raro. Esta idea es tan simple como genial ...¡Muchas gracias! – Shingoo
pero esto se ve así - http://stackoverflow.com/questions/10965098/nsfetchedresultscontroller-prepend-a-row- or-section –