如何在编辑模式的实现代码如下启用更改编辑/完成按钮标题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"); 
    } 
} 

它的工作就像编辑: -

enter image description here

TO

enter image description here

+0

完美,非常感谢:) – aLFaRSi

+0

接受的答案,如果有用的THX ...队友 –

+0

我做到了,但它是告诉我等待一段时间:) – aLFaRSi

这里是改变我的方法吨斯威夫特

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]; 
} 

这里的例子是因为你的UIViewControllerUINavigationController托管等方面具有UINavigationItem实例的情况。如果您没有这样做,您需要以适当的方式更新栏项。

在你viewDidLoad使用下面的调用来配置的编辑按钮就可以使用:

[self setEditing: NO animated: NO]; 
+1

节省时间的解决方案,无需本地化字符串。 – kelin