Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to change uitableview delete button text

Hi there I am trying to change the text that is showing in the delete button when a user swipes a uitableviewcell inside my tableview.

I have seen an example in another question thread that says to use this tableview delegate

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

My question is, how do I use this method.. I am not sure how to use this.

like image 797
C.Johns Avatar asked Sep 12 '11 22:09

C.Johns


3 Answers

In your controller managing the UITableView you should implement the UITableviewDelegate and return the title you want for your method inside the titleForDeleteConfirmationButtonForRowAtIndexPath method.

Example:

@interface CategoryAddViewController : UITableViewController
@end

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

@end

Leaving you off with something like that:

enter image description here

like image 141
Faizan S. Avatar answered Sep 30 '22 14:09

Faizan S.


In Swift it is equal, just method signature is diferent!

func tableView(tableView: UITableView, titleForDeleteConfirmationButtonForRowAtIndexPath indexPath: NSIndexPath) -> String? {
  return "Erase"
}
like image 21
Weles Avatar answered Sep 30 '22 15:09

Weles


Just return the string that you want to display instead of delete. Say you wish to show "Erase" for all rows, the above function should contain:

return @"Erase";

Read THIS

Also in your .h file, add the UITableViewDelegate in case your view controller is not a UITableViewController already. That is it can be either:

@interface SomeView : UIViewController <UITableViewDelegate>

OR

@interface SomeView : UITableViewController
like image 29
Bourne Avatar answered Sep 30 '22 14:09

Bourne