如何在编辑模式的实现代码如下启用更改编辑/完成按钮标题UINavigationBar的
问题描述:
它显示了一个按钮,标题为编辑,当按下它,它改变了标题做如何在编辑模式的实现代码如下启用更改编辑/完成按钮标题UINavigationBar的
我想知道如果有一种方法来将完成按钮标题更改为其他内容?
我已经改变了完成按钮的标题。
我使用的代码是
self.navigationItem.rightBarButtonItem = self.editButtonItem;
self.editButtonItem.title = @"Change";
现在的编辑是变化
如何使完成别的东西?
答
你可以改变编辑按钮的标题是这样的: -
- (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");
}
}
它的工作就像编辑: -
TO
答
这里是改变我的方法吨斯威夫特
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"
}
}
答
大厦Nitin's answer我建议使用内置的UIButtonBar
系统项目略有不同的方法。
这会给你的用户界面系统看起来&的感觉。例如,停止编辑的标准“完成”按钮在iOS 8上应具有特定的粗体外观。
此方法还为您提供免费的字符串本地化。
下面是我得到了代码:
-(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];
+1
节省时间的解决方案,无需本地化字符串。 – kelin
完美,非常感谢:) – aLFaRSi
接受的答案,如果有用的THX ...队友 –
我做到了,但它是告诉我等待一段时间:) – aLFaRSi