2010-07-19 18 views
14

Tengo un UITableView que se puede editar. Estoy cometiendo cambios a través de:¿Cómo seleccionar filas mientras está en modo de edición?

- (void)tableView:(UITableView *)tableView commitEditingStyle:(UITableViewCellEditingStyle)editingStyle forRowAtIndexPath:(NSIndexPath *)indexPath 

Mientras que en el modo de edición, me gustaría que el usuario sea capaz de seleccionar una fila, lo que empujará una nueva vista. No estoy seguro de cómo hacer esto. Sospecho que estará en:

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath 

Pero, ¿cómo puedo determinar si el usuario está en modo de edición o no?

ACTUALIZACIÓN: modo de edición se activa a través de:

self.navigationItem.rightBarButtonItem = self.editButtonItem; 

Respuesta

29

para permitir la selección durante la edición que necesita para establecer la propiedad de allowsSelectionDuringEditingUITableView a SÍ. Luego llamará al mensaje didSelectRowAtIndexPath. Puede encontrar más información acerca de este inmueble aquí:

http://developer.apple.com/iphone/library/documentation/uikit/reference/UITableView_Class/Reference/Reference.html#//apple_ref/occ/instp/UITableView/allowsSelectionDuringEditing

A continuación, puede ver si el usuario está en el modo de edición mediante la ejecución de código como el siguiente:

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath { 
    if (tableView.editing == YES) { 
     // Table view is editing - run code here 
    } 
} 
+0

Con IOS 9, didSelectRowAtIndexPath es nunca se llamó mientras estaba en modo de edición, incluso con allowsSelectionDuringEditing = YES. En su lugar, puede implementar willSelectRowAtIndexPath-- que se llamará si también establece allowsSelectionDuringEditing = YES. – lifjoy

+0

@lifjoy, estoy desarrollando en iOS 9.2, la solución didSelectRowAtIndexPath todavía funciona a través de allowsSelectionDuringEditing. –

+0

@Jerry Chen: eso es curioso. No importaba lo que hiciera, didSelectRowAtIndexPath no funcionaba para mí cuando la tabla estaba en modo Edición. – lifjoy

Cuestiones relacionadas