11

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

在此处输入图像描述

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

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

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

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

4

6 回答 6

15

我解决了。关键是我将“编辑”按钮的标识符设置为系统值(例如 UIBarButtonSystemItemEdit),而您无法更改它们的文本(现在有意义)。我将标识符改回自定义并设置 .Title 工作正常。

于 2012-09-16T22:32:06.697 回答
10

Why don't you try changing the navigationItem.rightbarButtonItem property ?

1. Set up two buttons, one for edit and one for done

 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. And wherever necessary, in editAction preferrably change the rightBarButtonItem like:

self.navigationItem.rightBarButtonItem=doneButton;

And if you need the editButton back

 self.navigationItem.rightBarButtonItem=editButton;
于 2012-09-04T06:03:18.727 回答
5
if ([self.navigationItem.rightBarButtonItem.title isEqualToString:@"Edit"]) 
{
    self.navigationItem.rightBarButtonItem.title= @"Done";
}

hope this helps. happy coding :)

于 2012-09-04T06:04:01.763 回答
4

UIBarButtonItem *btnEdit这样对我有用;是.h中的类memember;

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"];
  }
}
于 2012-09-04T06:02:47.770 回答
1

控制从栏按钮拖动到文件(使用助手编辑器),创建出口(在这种情况下,它称为“barButton”。然后,添加:

斯威夫特 3.0:

self.barButton.title = "New title"
于 2017-01-22T06:41:52.027 回答
0

重新新建按钮,如下所示。.

self.navigationItem.leftBarButtonItem = UIBarButtonItem(title: "title", style: UIBarButtonItemStyle.plain, target: self, action: #selector(actionMethod))
于 2017-07-16T10:56:14.360 回答