如何更改NavigationBar上的BarButtonItem的文本?

我正在尝试创build一个可以编辑的项目列表。 像这样的东西:

在这里输入图像说明

为此,我在视图的顶部添加了一个NavigationBar,然后在XCodedevise器中添加了2个Bar Button Items。 我将左侧button的标识设置为“添加”,右侧的“编辑”button。

当我点击编辑时,我想将文本更改为完成。 我已经尝试了各种方法,例如btnEdit.Title = "Done" ,但它根本不需要。

我见过几篇博客post,推荐.SetTitle,但UIButtonBarItem没有这个方法(至less在MonoTouch中)。

那么,我怎样才能改变编辑button的标题呢?

我解决了它。 关键是我将编辑button的标识符设置为系统值(例如UIBarButtonSystemItemEdit),您不能更改这些(现在有意义)的文本。 我改变了标识符回到自定义和设置。标题工作正常。

你为什么不尝试改变navigationItem.rightbarButtonItem属性?

1.设置两个button,一个用于编辑,另一个用于完成

  UIBarButtonItem*editButton=[[UIBarButtonItem alloc] initWithTitle:@"Edit" style:UIBarButtonItemStylePlain target:self action:@selector(editAction)]; UIBarButtonItem*doneButton=[[UIBarButtonItem alloc] initWithTitle:@"Done" style:UIBarButtonItemStylePlain target:self action:@selector(doneAction)]; 

2.在必要的情况下,在editAction最好更改rightBarButtonItem如:

 self.navigationItem.rightBarButtonItem=doneButton; 

如果你需要editButton

  self.navigationItem.rightBarButtonItem=editButton; 
 if ([self.navigationItem.rightBarButtonItem.title isEqualToString:@"Edit"]) { self.navigationItem.rightBarButtonItem.title= @"Done"; } 

希望这可以帮助。 快乐编码:)

适用于我这样的UIBarButtonItem * btnEdit ; 在.h是class级记忆;

 btnEdit = [[UIBarButtonItem alloc]initWithTitle:@"Edit" style:UIBarButtonItemStyleBordered target:self action:@selector(btnEditClicked)]; self.navigationItem.leftBarButtonItem = btnEdit; //[btnEdit release]; 

现在select器调用将是:

 -(void)btnEditClicked { if([btnEdit.title isEqualToString:@"Edit"]) { [btnEdit setTitle:@"Done"]; } else { [btnEdit setTitle:@"Edit"]; } } 

控制从栏button拖动到文件(使用助理编辑器),创build出口(在这种情况下,其称为“barButton”。然后,添加此:

Swift 3.0:

 self.barButton.title = "New title" 

重新新buildbutton,如下所示。 。

 self.navigationItem.leftBarButtonItem = UIBarButtonItem(title: "title", style: UIBarButtonItemStyle.plain, target: self, action: #selector(actionMethod))