Puede probar esto, es que funciona para mí (por única selección o selecciones múltiples):
A. asignar un NSMutableArray privado en viewDidLoad como:
@interface XXXViewController : UIViewController <UITableViewDataSource, UITableViewDelegate>
{
NSMutableArray * selectedZoneCellIndexPaths;
}
- (void)viewDidLoad
{
selectedZoneCellIndexPaths = [[NSMutableArray alloc] init];
}
B. en UITableViewDelegate didSelectRow añadir siguientes líneas
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
for (NSIndexPath * iter in selectedZoneCellIndexPaths)
{
if (indexPath.section == iter.section && indexPath.row == iter.row)
{
[tableView deselectRowAtIndexPath:indexPath animated:YES];
[selectedZoneCellIndexPaths removeObject:iter];
return;
}
}
[selectedZoneCellIndexPaths addObject:indexPath];
return;
}
¿Qué usted realmente quiere hacer? Mi código le da la capacidad de rastrear que la celda ha sido seleccionada antes o no. Dentro de esa declaración if puedes implementar más cosas que quieras. – JHHoang
Si la celda ya está seleccionada, este método nunca se llama –
Es fácil. ¿Cuántas celdas tienes? Puedo escribirle un código de muestra con una celda usando el delegado de UItableview. Avísame si todavía te interesan. – JHHoang