如何以编程方式更改editButtonItem的状态?

Don*_*son 5 iphone cocoa-touch

我有一个表格视图,我想在某些条件下以编辑模式显示.

我可以使用以下代码将表本身设置为编辑模式:

[self.tableView setEditing:YES animated:YES];
Run Code Online (Sandbox Code Playgroud)

但是这个视图控制器还有一个editButtonItem,它以正常模式出现,在按钮上显示"Edit".我想将此按钮设置为编辑模式,因此它显示"完成",并在选中时将整个表格切换回正常模式.此按钮设置为典型:

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

有没有办法以编程方式将此按钮切换到编辑模式?如果我更改按钮的样式,它会更改外观,但实际上不会更改按钮的模式.

Don*_*son 21

通过更多的研究,我回答了自己的问题.我需要将表视图和视图控制器本身都设置为编辑模式 - 然后是表,editButtonItem将反映正确的状态.像这样:

[self.tableView setEditing:YES animated:YES];
[self setEditing:YES];
Run Code Online (Sandbox Code Playgroud)

  • 第一线真的有必要吗?我想如果你只是在控制器上设置编辑:是,则表视图应该自动跟随 (5认同)
  • 首先没有必要,只需使用`[tableViewController setEditing:YES animated:YES];`.表视图控制器将自动调用表上的setEditing. (2认同)