2011-06-16 16 views
14

Tengo un cuadro de diálogo de alerta de confirmación personalizado en la parte superior de la confirmación de eliminación de celda normal para algunas celdas, es una especie de confirmación doble para estas celdas. (Esto es después de que el usuario ingrese al modo de edición, no mediante deslizamiento) Por lo tanto, si el usuario hace clic en 'Aceptar' para confirmar en mi cuadro de diálogo de confirmación personalizado. Se supone que debe hacer la eliminación real, que se comporta bien, ya que toda la celda se eliminará de TableView. Sin embargo, si el usuario hace clic en 'Cancelar', la celda no se elimina, permanece en la tabla y permanece en el "Modo de confirmación de cancelación". Esto no es lo que quiero, quiero que se revierte al "modo de edición de celda normal". He buscado en la documentación de apple, solo proporciona un método de solo lectura "showingDeleteConfirmation". Realmente no tiene forma de revertir este modo volver a la edición de células que puedo hacer esto a entrar ilegalmente en él:.En UITableViewCell ¿cómo puedo revertir el modo de confirmación de eliminación al modo de edición normal?

 [cell setEditing:NO animated:NO]; 
     [cell setEditing:YES animated:NO]; 

no puedo habilitar la animación aquí porque va a quedar mal se temping para volver al modo de no edición a modo de edición de nuevo. pero la transición animación no es bastante suave sin ella. ¿hay alguna CLEANER manera de hacer esto?

Respuesta

0

no estoy bastante comprensión de su pregunta, pero quiere usted decir establecer el table.editing = nO ;?

7

Suponiendo que está almacenando el indexPath para la célula que está mostrando la confirmación de la eliminación, se puede hacer esto:

- (void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex 
{ 
    if (buttonIndex == [alertView cancelButtonIndex]) { 
     [self.tableView reloadRowsAtIndexPaths:@[self.indexPathToDelete] withRowAnimation:UITableViewRowAnimationAutomatic]; 
    } 

    // Do other stuff 

} 

La célula se revertirá la confirmación de eliminación con una animación de fundido.

+0

genial! ¡Esa es la explicación que no pude encontrar en ninguna parte! – Martin

11

para nadie más todavía en busca de ello, esto una transición suave opuesta para una sola celda:

[tableView setEditing:FALSE animated:TRUE]; 
Cuestiones relacionadas