web-dev-qa-db-fra.com

Comment modifier le texte du bouton de suppression uitableview

Salut, j'essaie de changer le texte qui s'affiche dans le bouton Supprimer lorsqu'un utilisateur glisse une cellule uitableview à l'intérieur de ma table.

J'ai vu un exemple dans un autre fil de question qui dit d'utiliser ce délégué tableview

- (NSString *)tableView:(UITableView *)tableView titleForDeleteConfirmationButtonForRowAtIndexPath:(NSIndexPath *)indexPath

Ma question est, comment utiliser cette méthode .. Je ne sais pas comment l'utiliser.

75
C.Johns

Dans votre contrôleur gérant le UITableView, vous devez implémenter le UITableviewDelegate et renvoyer le titre que vous voulez pour votre méthode à l'intérieur de la méthode titleForDeleteConfirmationButtonForRowAtIndexPath.

Exemple:

@interface CategoryAddViewController : UITableViewController
@end

@implementation CategoryAddViewController
// ...
-(NSString *)tableView:(UITableView *)tableView titleForDeleteConfirmationButtonForRowAtIndexPath:(NSIndexPath *)indexPath {
return @"Please don't delete me!";
}

@end

Vous laissant avec quelque chose comme ça:

enter image description here

194
Faizan S.

En Swift c'est égal, juste la signature de méthode est différente!

func tableView(tableView: UITableView, titleForDeleteConfirmationButtonForRowAtIndexPath indexPath: NSIndexPath) -> String? {
  return "Erase"
}
29
Weles

Renvoyez simplement la chaîne que vous souhaitez afficher au lieu de la supprimer. Supposons que vous souhaitiez afficher "Effacer" pour toutes les lignes, la fonction ci-dessus devrait contenir:

return @"Erase";

Lisez CE

Également dans votre fichier .h, ajoutez l'UITableViewDelegate au cas où votre contrôleur de vue n'est pas déjà un UITableViewController. Cela peut être soit:

@interface SomeView : UIViewController <UITableViewDelegate>

OR

@interface SomeView : UITableViewController
4
Bourne