2010-04-04 3 views
0

J'ai une vue de table avec 0 ou n lignes de données à partir de la banque de données. J'ai ajouté un bouton Modifier personnalisé sur la droite de la barre de navigation de la vue. Par défaut, lorsque le bouton d'édition est cliqué, en cas d'action, je mets la vue en mode d'édition:Ajouter dynamiquement une nouvelle ligne comme Ajouter dans UITableView en mode édition?

[self.tableView setEditing:YES animated:YES]; 

Je voudrais ajouter une ligne à la fin de l'affichage du tableau avec le bouton Ajouter comme accessoire à gauche lorsque la vue de la table est en mode édition. Et la ligne "Ajouter" ne sera pas affichée lorsque la vue n'est pas en mode édition. Ceci est très similaire au cas de l'application Contacts iPhon'e lorsqu'un contact est en mode édition.

Je ne suis pas sûr si j'ai besoin d'ajouter une ligne dynamiquement, et comment si oui? Une manière alternative je suppose est d'ajouter plus de ligne quand tableView: numberOfRowsInSection: est appelé? Si plus tard c'est le cas, je dois le cacher quand la vue n'est pas en mode édition et visible quand la vue est en édition. Par ailleurs, ma vue de table est chargée à partir du fichier xib. Vous ne savez pas s'il existe des paramètres pour spécifier le style de la vue table comme UITableViewCellEditingStyleDelete et UITableViewCellEditingStyInsert pour activer la fonctionnalité d'ajout?

Répondre

4

Vous devez implémenter un ensemble de méthodes déléguées. Du côté UITableViewDelegate:

- (UITableViewCellEditingStyle) tableView: (UITableView *) tableView 
editingStyleForRowAtIndexPath: (NSIndexPath *) indexPath 

Du côté UITableViewDataSource:

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

Vous pouvez simplement ajouter de nouvelles lignes à votre source de données, puis appelez [tableView reloadData] ou [tableView insertRowsAtIndexPaths:...].

HTH.

Questions connexes