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

Ang*_*ker 11 uinavigationbar xamarin.ios uibuttonbaritem ios

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

在此输入图像描述

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

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

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

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

Ang*_*ker 14

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


iNo*_*oob 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)];
Run Code Online (Sandbox Code Playgroud)

2.在必要时,editAction最好改变之rightBarButtonItem类:

self.navigationItem.rightBarButtonItem=doneButton;
Run Code Online (Sandbox Code Playgroud)

如果你需要editButton背部

 self.navigationItem.rightBarButtonItem=editButton;
Run Code Online (Sandbox Code Playgroud)


Ans*_*arg 5

if ([self.navigationItem.rightBarButtonItem.title isEqualToString:@"Edit"]) 
{
    self.navigationItem.rightBarButtonItem.title= @"Done";
}
Run Code Online (Sandbox Code Playgroud)

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

  • 您不能使用==来比较字符串.您应该使用isEqualToString:而不是. (3认同)