self.editing 与 self.tableView.editing 和 setEditing 混淆

self.editing vs. self.tableView.editing and setEditing confusion

在打开编辑时在我的 UITableView 控制器上呈现模态视图后,我发现当控制器被关闭时 self.editingself.tableView.editing 的值不同(self.editing 是仍在运行,但 self.tableView.editing 已经关闭并且 tableView 处于一种奇怪的状态。

为了更正这个问题,我在呈现模态视图时做了 [self setEditing:NO animated:YES]

我发现这两行不做同样的事情:

[self.tableView setEditing:NO animated:YES];
[self setEditing:NO animated:YES];

我的问题是:

(1) 为什么这些命令和

有区别

(2)self.editingself.tableView.editing的状态怎么会不一样呢?

根据文档

self.editing

一个布尔值,表示 viewController 当前是否允许用户编辑视图内容

self.tableView.editing

一个布尔值,用于确定 table 视图是否处于编辑模式。

我想你自己看定义就明白了,viewController编辑是指viewController是否允许编辑。