gpt4 book ai didi

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

转载 作者:搜寻专家 更新时间:2023-11-01 06:00:12 24 4
gpt4 key购买 nike

我在viewDidLoad()下实现navigationItem.leftBarButtonItem = editButtonItem,据说要实现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)
}

最佳答案

and it is said that I have to implement setEditing(_ editing: Bool, animated: Bool) as well

那么“据说”是错误的。

UITableViewController 的内置editButtonItem 会自动为您调用 TableView 的setEditing;因此,没有必要复制该功能。更准确地说:

  1. UIViewController 的内置 editButtonItem 做了两件事:

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

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

  2. 此外,UITableViewController 的 setEditing(_:animated:) 实现在其 TableView 上调用了 setEditing(_:animated:)

因此,如果这不是 UITableViewController,您需要执行最后一步。但它是,所以你不需要。

关于ios - setEditing() 在 Swift 中到底做了什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56229680/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com