6 votes

UITableView perd la sélection

J'ai un problème avec la sélection de UITableView. Si je clique sur le bouton d'édition, le TableView passe en mode édition et perd la sélection actuelle.

Comment puis-je passer en mode édition sans perdre la sélection ?

- (BOOL)tableView:(UITableView *)tableView canEditRowAtIndexPath:(NSIndexPath *)indexPath
{
    // Renvoie NO si vous ne voulez pas que l'élément spécifié soit modifiable.
    return YES;
}

3voto

sandropennisi Points 56

J'ai pu le reproduire : si vous sélectionnez la ligne comme ceci [self.tableView selectRowAtIndexPath:] la cellule perd sa sélection. Mais si vous sélectionnez directement la cellule, elle ne perd pas la sélection en mode édition, quelque chose comme ceci :

    UITableViewCell* cell = [self.tableView cellForRowAtIndexPath:
                          [NSIndexPath indexPathForRow:1 inSection:0]];

    [cell setSelected:YES animated:NO];

1voto

jrturton Points 64875

Remplacez setEditing:animated: dans votre contrôleur de vue de table. Si vous entrez en mode édition, stockez la sélection actuelle en tant que variable d'instance NSIndexPath :

selectedRow = [self.tableView indexPathForSelectedRow];

Si vous sortez du mode édition, définissez la sélection de la table sur le chemin d'index stocké :

[self.tableView selectRowAtIndexPath:selectedRow animated:NO scrollPosition:UITableViewScrollPositionNone];

Faites attention de ne pas essayer de sélectionner une ligne qui a été supprimée pendant l'édition. Et n'oubliez pas d'appeler également l'implémentation super !

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X