设置UIBarButtonItem不改变标题,只改变样式
我有一个UIBarButtonItem
在右上angular说'编辑'。 点击后,这个代码被称为 – 我知道这是因为该button是底气。 但是,button的标题不会更改。 这是我的代码:
// set to not editing and change buttons [self setEditing:YES animated:YES]; UIBarButtonItem *doneButton = (UIBarButtonItem *)sender; [doneButton setTitle:@"Done"]; [doneButton setStyle:UIBarButtonItemStyleDone]; self.navigationItem.rightBarButtonItem = doneButton;
编辑2:
下面的代码是做我想做的,但是第一次点击编辑button,没有任何反应。
-(void)editButton:(id)sender { self.navigationItem.rightBarButtonItem = [[UIBarButtonItem alloc] initWithTitle:@"Edit" style: UIBarButtonItemStylePlain target:self action:@selector(edit:)]; } -(void) edit:(UIBarButtonItem *) barBtnItem { // if not editing if (![self isEditing]) { [self setEditing:YES]; barBtnItem.tag = 1; [self.navigationItem.rightBarButtonItem setTitle:@"Done"]; } else { [self setEditing:NO]; barBtnItem.tag = 0; [self.navigationItem.rightBarButtonItem setTitle:@"Edit"]; } }
只要做到这一点
UIBarButtonItem *barButton = [[UIBarButtonItem alloc] initWithTitle:@"Edit" style: UIBarButtonItemStyleBordered target:self action:@selector(edit:)]; barButton.tag = 0; barButton.possibleTitles = [NSSet setWithObjects:@"Edit", @"Done", nil];
只需按一下即可改变状态。 简单的事情。
-(void) edit:(UIBarButtonItem *) barBtnItem { if (barBtnItem.tag == 0) { barBtnItem.tag = 1; [self.navigationItem.rightBarButtonItem setTitle:@"Done"]; } else { barBtnItem.tag = 0; [self.navigationItem.rightBarButtonItem setTitle:@"Edit"]; } }
那这个呢:
self.navigationItem.rightBarButtonItem = self.editButtonItem;
我觉得它几乎做你想做的事情。
当点击时,它变成“完成”,然后再次点击时,返回到“编辑”。 此外,它相应地设置视图控制器编辑属性。
你可以通过下面的代码来完成
UIBarButtonItem *rightBarButton = [[UIBarButtonItem alloc]initWithTitle:@"Done" style:UIBarButtonItemStylePlain target:self action:@selector(doneClicked:)]; self.navigationItem.rightBarButtonItem = rightBarButton;
最简单的解决scheme:只需将BarButtonItem的标识符更改为自定义。
从系统更改types:编辑到自定义
从UIBarButtonItem引用的 “title”属性
在将项目添加到条之前,您应该设置此属性。 默认值是零。
检查这个qn也