重命名tableview中的标准"编辑"按钮

Rob*_*ega 2 iphone uitableview

我管理(有很多试验和错误)让我的tableview 提供重新排序功能,即我的tableview是可编辑的,但是没有显示"删除图标",也没有在点击编辑按钮时缩进行.

现在我希望按钮读取"排序"而不是"编辑".

我天真地试过这个:

self.navigationItem.leftBarButtonItem = self.editButtonItem;
self.navigationItem.leftBarButtonItem.title = @"Sort";
Run Code Online (Sandbox Code Playgroud)

它只能运行一次,即它被正确标记为"排序",一旦点击它就会重命名为"完成",但随后 - 按预期 - 重新重命名为"编辑".

为了解决这个问题,我在导航栏上部署了"自己的"按钮.这个解决方案有效 - 我可以通过按钮来控制tableview编辑模式,在更改时重新加载数据,重命名自己等等 - 但我无法让它"保持突出显示",即"编辑"按钮的默认行为在tableview中.

现在我的问题是:

a)有没有办法重命名(并保持重命名,例如通过回调)标准的"编辑"按钮?

要么

b)有没有办法让按钮表现为"模态",即保持选中状态,就像标准的"编辑"按钮一样?

感谢您的任何想法.

gca*_*amp 6

您可以- (void) setEditing:(BOOL)editing animated:(BOOL)animated在视图控制器中将更改放在方法中.

- (void) setEditing:(BOOL)editing animated:(BOOL)animated {
    //Do super before, it will change the name of the editing button
    [super setEditing:editing animated:animated];

    if (editing) {
      self.navigationItem.leftBarButtonItem.title = @"Done";
      self.navigationItem.leftBarButtonItem.style = UIBarButtonItemStyleDone;
    }
    else {
      self.navigationItem.leftBarButtonItem.title = @"Sort";
      self.navigationItem.leftBarButtonItem.style = UIBarButtonItemStyleBordered;
    }
}
Run Code Online (Sandbox Code Playgroud)