如何更改导航栏上的栏按钮项的文本?

时间:2012-09-04 05:54:53

标签: ios xamarin.ios uinavigationbar uibuttonbaritem

我正在尝试创建可以编辑的项目列表。像这样:

enter image description here

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

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

我看过几篇推荐.SetTitle的博文,但UIButtonBarItem没有这种方法(至少在MonoTouch中)。

那么,如何更改“编辑”按钮的标题?

6 个答案:

答案 0 :(得分:14)

我解决了。关键是我将Edit按钮的标识符设置为系统值(例如UIBarButtonSystemItemEdit),您无法更改那些文本(现在有意义)。我将标识符更改回Custom并设置.Title工作正常。

答案 1 :(得分:10)

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

1。设置两个按钮,一个用于编辑,一个用于完成

 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;

答案 2 :(得分:5)

if ([self.navigationItem.rightBarButtonItem.title isEqualToString:@"Edit"]) 
{
    self.navigationItem.rightBarButtonItem.title= @"Done";
}
希望这会有所帮助。快乐的编码:)

答案 3 :(得分:4)

像我这样为 UIBarButtonItem * btn编辑;是.h;中的班级成员;

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

现在调用的选择器将是:

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

答案 4 :(得分:1)

控制从条形按钮拖动到文件(使用助理编辑器),创建插座(在这种情况下,它被称为" barButton"。然后,添加此:

Swift 3.0:

self.barButton.title = "New title"

答案 5 :(得分:0)

重新按下如下按钮。

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