setEditing()在Swift中到底做什么?

Hit*_*tit 1 ios swift

我正在navigationItem.leftBarButtonItem = editButtonItem根据下实施viewDidLoad(),据说我也必须实施setEditing(_ editing: Bool, animated: Bool)。似乎没有setEditing功能,每个编辑功能都可以正常工作。它有什么作用??

  override func viewDidLoad() {
    super.viewDidLoad()

    navigationController?.navigationBar.prefersLargeTitles = true
    navigationItem.leftBarButtonItem = editButtonItem
    tableView.allowsMultipleSelectionDuringEditing = true
  }

    override func setEditing(_ editing: Bool, animated: Bool) {
        super.setEditing(editing, animated: true)
        tableView.setEditing(tableView.isEditing, animated: true)
    }
Run Code Online (Sandbox Code Playgroud)

mat*_*att 5

据说我也必须实现setEditing(_ edit:Bool,animation:Bool)

然后“说”不正确。

editButtonItemUITableViewController 的内置功能会自动setEditing为您调用表格视图;因此,无需重复该功能。更准确地说:

  1. editButtonItemUIViewController 的内置功能可做两件事:

    • setEditing(_:animated:)点击时调用UIViewController的。

    • 它跟踪UIViewController的isEditing属性,并相应地更改其自己的标题(“编辑”或“完成”)。

  2. 而且,UITableViewController 在其表视图上的setEditing(_:animated:)调用实现setEditing(_:animated:)。

因此,你将需要做的最后一步,如果这不是一个UITableViewController。但是,事实并非如此。