2009-07-28 12 views
0

J'ai un UITableView avec deux sections. La première section a une ligne et la section un a un nombre variable de rangées qui varie selon l'entrée de données dans la base de données.Comment bloquer une cellule UITableView d'être supprimée dans l'iPhone

Je veux que l'utilisateur ne puisse pas supprimer la cellule de la première section mais il est capable de supprimer les cellules de la deuxième section.

J'ai implémenté la méthode commitEditingStyle pour la tableview mais le problème est qu'il permet à l'utilisateur de supprimer la ligne de la première section.

Je peux mettre un drapeau pour le vérifier dans commitEditingStyle mais ce que je veux faire c'est de le bloquer pour montrer le bouton d'édition. C'est l'utilisateur ne sera pas capable de voir le bouton de suppression quand il passe son doigt sur la cellule du tableau.

J'ai défini la propriété editing = false mais je ne peux pas définir la propriété editingStyle car elle est en lecture seule. Définir l'édition = false ne fonctionne pas. tnx.

Répondre

1

Ouais cela fonctionne.

- (UITableViewCellEditingStyle)tableView:(UITableView *)tableView editingStyleForRowAtIndexPath:(NSIndexPath *)indexPath 
{ 
    switch (indexPath.section) { 
     case 0: 
      return UITableViewCellEditingStyleNone; 
      break; 
     case 1: 
      return UITableViewCellEditingStyleDelete; 
      break; 
     default: 
      return UITableViewCellEditingStyleNone; 
      break; 

    } 
} 
0

Avez-vous essayé de définir le style d'édition tableViewCells sur aucune pour les cellules de la première section? Je pense que cela devrait fonctionner pour vous

+0

Bien que j'ai défini l'édition = false, mais editStyle est une propriété en lecture seule. – rkb

+0

utiliser - (id) initWithStyle: (UITableViewCellStyle) stylereuseIdentifier: (NSString *) reuseIdentifier – Daniel

+0

bien que je puisse me tromper, je n'ai pas de code en face de moi, donc je ne me souviens pas bien, je pense que la réponse ci-dessous me convient. .. – Daniel

Questions connexes