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

时间:2010-01-07 13:48:50

标签: iphone uitableview

我管理(有大量的试验和错误)让我的tableview提供重新排序功能,即我的tableview是可编辑的,但不会显示“删除图标”,也不会在点击时缩进行编辑按钮。

现在我希望按钮读取“排序”而不是“编辑”。

我天真地尝试过这个:

self.navigationItem.leftBarButtonItem = self.editButtonItem;
self.navigationItem.leftBarButtonItem.title = @"Sort";

只能运行一次,即它被正确标记为“排序”,一旦点击它就会重命名为“完成”,但随后 - 正如预期的那样 - 重新重命名为“编辑”。

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

现在我的问题是:

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

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

感谢您的任何想法。

1 个答案:

答案 0 :(得分: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;
    }
}