我管理(有大量的试验和错误)让我的tableview提供仅重新排序功能,即我的tableview是可编辑的,但不会显示“删除图标”,也不会在点击时缩进行编辑按钮。
现在我希望按钮读取“排序”而不是“编辑”。
我天真地尝试过这个:
self.navigationItem.leftBarButtonItem = self.editButtonItem;
self.navigationItem.leftBarButtonItem.title = @"Sort";
只能运行一次,即它被正确标记为“排序”,一旦点击它就会重命名为“完成”,但随后 - 正如预期的那样 - 重新重命名为“编辑”。
为了解决这个问题,我在导航栏上部署了“自己的”按钮。这个解决方案有效 - 我可以通过按钮来控制tableview编辑模式,在更改时重新加载数据,重命名自己等等 - 但我无法让它“保持突出显示”,即“编辑”按钮的默认行为在tableview中。
现在我的问题是:
a)有没有办法重命名(并保持重命名,例如通过回调)标准的“编辑”按钮?
或
b)有没有办法让按钮表现为“模态”,即保持选中状态,就像标准的“编辑”按钮一样?
感谢您的任何想法。
答案 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;
}
}