当UITableView处于编辑模式时,如何隐藏Bar Button项目?(迅速)

Swi*_*ker 2 uinavigationbar uitableview uibarbuttonitem ios swift

标题基本上说明了一切。

我有一个,UITableView并且我希望该项在编辑模式下RightBarButtonItem消失UITableView。不幸的是,到目前为止,我发现的所有答案都建议将按钮设置为nil ...这对我不起作用,因为我不想摆脱按钮及其引用,只需在按钮隐藏时隐藏它即可。UITableView处于编辑模式。

那么,我在弄清楚该怎么做时遇到的麻烦是:

  1. 检测何时UITableView进入编辑模式
  2. 隐藏RightBarButtonItem(不完全删除)
  3. 检测何时UITableView已离开编辑模式(以便按钮可以重新出现)

任何帮助,将不胜感激,谢谢!

Swi*_*ker 5

我为任何需要的人提供的工作解决方案:

override func setEditing(editing: Bool, animated: Bool) {
    if (editing) {
        super.setEditing(true, animated: true)
        self.navigationItem.rightBarButtonItem!.enabled = false
    } else {
        super.setEditing(false, animated: true)
        self.navigationItem.rightBarButtonItem!.enabled = true
    }
}
Run Code Online (Sandbox Code Playgroud)

确保设置super.setEditing开始编辑之前和之后,以保留编辑按钮的功能。

此外,如果您不希望UITableView当用户离开UITableView且不先单击“完成” 时将保持在编辑模式,请添加以下功能:

override func viewWillDisappear(animated: Bool) {
    super.viewWillDisappear(true)
    if (editing) {
        editing = false
    }
}
Run Code Online (Sandbox Code Playgroud)