我右上方有一个UIBarButtonItem
,上面写着“编辑”。单击时,会调用此代码 - 我知道这是因为按钮是大胆的。但是,按钮的标题不会更改。这是我的代码:
// 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:
以下代码正在执行我想要的操作,但是当我第一次单击编辑按钮时,没有任何反应。
-(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"];
}
}
答案 0 :(得分:4)
这个怎么样:
self.navigationItem.rightBarButtonItem = self.editButtonItem;
我认为它几乎可以满足您的需求。
点按时更改为“完成”,再次点按时更改为“编辑”。此外,它相应地设置视图控制器编辑属性。
答案 1 :(得分:2)
就这样做
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"];
}
}
答案 2 :(得分:1)
您可以通过代码以及
来完成UIBarButtonItem *rightBarButton = [[UIBarButtonItem alloc]initWithTitle:@"Done" style:UIBarButtonItemStylePlain target:self action:@selector(doneClicked:)];
self.navigationItem.rightBarButtonItem = rightBarButton;
答案 3 :(得分:1)
最简单的解决方案:只需将BarButtonItem的标识符更改为自定义。
答案 4 :(得分:0)
从系统更改类型:编辑为自定义
答案 5 :(得分:-1)