如果为tableview启用了编辑模式,则会显示一个标题为“编辑”的按钮,按下该按钮会将标题更改为
我想知道是否有办法将完成按钮标题更改为其他内容?
我已经更改了完成按钮的标题。
我使用的代码是
self.navigationItem.rightBarButtonItem = self.editButtonItem;
self.editButtonItem.title = @"Change";
现在编辑是改变
如何完成其他事情?
答案 0 :(得分:9)
您可以像这样更改编辑按钮的标题: -
- (void)setEditing:(BOOL)editing animated:(BOOL)animated
{
// Make sure you call super first
[super setEditing:editing animated:animated];
if (editing)
{
self.editButtonItem.title = NSLocalizedString(@"Cancel", @"Cancel");
}
else
{
self.editButtonItem.title = NSLocalizedString(@"Edit", @"Edit");
}
}
它的工作就像编辑: -
要
答案 1 :(得分:8)
以下是为Swift更改它的方法
override func setEditing (editing:Bool, animated:Bool)
{
super.setEditing(editing,animated:animated)
if (self.editing) {
self.editButtonItem().title = "Editing"
}
else {
self.editButtonItem().title = "Not Editing"
}
}
答案 2 :(得分:4)
在Nitin's answer的基础上构建我建议使用内置UIButtonBar
系统项的略有不同的方法。
这将为您的UI提供系统外观和优势;感觉。例如,标准"完成"停止编辑的按钮应该在iOS 8上具有特定的粗体外观。苹果可能会在将来更改这些样式。通过使用系统定义的按钮,您的应用程序将自动获取当前美学。
此方法还为您提供免费的字符串本地化。 Apple已经将系统按钮标题翻译成iOS支持的几十种语言。
这是我的代码:
-(IBAction) toggleEditing:(id)sender
{
[self setEditing: !self.editing animated: YES];
}
-(void) setEditing:(BOOL)editing animated:(BOOL)animated
{
[super setEditing: editing animated: animated];
const UIBarButtonSystemItem systemItem =
editing ?
UIBarButtonSystemItemDone :
UIBarButtonSystemItemEdit;
UIBarButtonItem *const newButton =
[[UIBarButtonItem alloc]
initWithBarButtonSystemItem: systemItem
target: self
action: @selector(toggleEditing:)];
[self.navigationItem setRightBarButtonItems: @[newButton] animated: YES];
}
此处的示例适用于UIViewController
托管在UINavigationController
中并因此具有UINavigationItem
实例的情况。如果您不这样做,则需要以适当的方式更新条形项。
在viewDidLoad
中使用以下调用来配置可供使用的编辑按钮:
[self setEditing: NO animated: NO];