2010-12-10 4 views
3

Je crée une application dans laquelle un utilisateur peut fournir différents noms d'utilisateur qu'il possède. La vision est, l'utilisateur est capable d'ajouter et de supprimer UITableViewCell pour entrer un nom d'utilisateur.Ajouter et supprimer dynamiquement UITableViewCells à UITableView

Maintenant j'ai un UITableView groupé et sur le côté droit de chaque UITableViewCell j'ai un UIButton qui ajoute une autre cellule à la table avec un UITextField. Après la première cellule, chaque cellule a un bouton de suppression. J'essaye de faire que l'UIButton efface cette rangée. J'ai l'IBAction qui enlève la cellule, le seul problème est, il ne supprime pas la rangée appropriée.

Quelle est la meilleure façon de faire ce que je suis en train de faire? Je ne sais pas comment rechercher correctement sur Google. Je suis sûr que quelqu'un a fait ce que j'essaie de faire.

Merci pour toute aide à l'avance!

Répondre

7

Semblable à ce que Derek a dit plus haut - UITableViewController fournit déjà une fonctionnalité pour supprimer des lignes.

Pour activer l'édition d'un UITableView, faire quelque chose comme: [self.tableView setEditing:!self.tableView.editing animated:YES];

Override tableView:canEditRowAtIndexPath: avec quelque chose comme (car il semble que vous ne voulez pas que votre première ligne à être supprimables):

- (BOOL)tableView:(UITableView *)tableView canEditRowAtIndexPath:(NSIndexPath *)indexPath { 
    if ([indexPath row] == 0) { 
      return NO; 
    } 

    return YES; 
} 

également déroger tableView:commitEditingStyle:

- (void)tableView:(UITableView *)tableView commitEditingStyle:(UITableViewCellEditingStyle)editingStyle 
forRowAtIndexPath:(NSIndexPath *)indexPath { 
    if (editingStyle == UITableViewCellEditingStyleDelete) { 
     [self.dataArray removeObjectAtIndex:[indexPath row] - 1]; 

     // delete the row from the data source 
     [tableView deleteRowsAtIndexPaths:[NSArray arrayWithObject:indexPath] withRowAnimation:YES]; 
    } 
} 

Espérons que cela aide!

2

Il semble que vous essayez de coder ce qu'une vue de table a déjà. Regardez dans les fonctions d'édition intégrées d'une vue de table et vous constaterez que vous n'avez pas besoin d'avoir ces boutons comme vues de table et que les délégués ont des facilités d'édition intégrées.

Votre commentaire sur la suppression de la mauvaise chose me fait penser vous rencontrez un problème avec les numéros de ligne correspondants aux index de vos données source.

Questions connexes