我有一个编辑按钮- UIBarButtonItem

单击时,它将从屏幕上消失

并在单击“取消”按钮时出现

如您所见,编辑按钮的状态在出现后保持选中状态。如何以编程方式将导航栏按钮状态更改为正常状态?或者给我一个更好的建议。
以下是我的项目代码
class ViewController: UIViewController, UITableViewDelegate, UITableViewDataSource, introductionDelegate {
var navBarEditButton: UIBarButtonItem?
var navBarDeleteButton: UIBarButtonItem?
var navBarCancelButton: UIBarButtonItem?
override func viewDidLoad() {
    super.viewDidLoad()
    self.navBarEditButton = UIBarButtonItem(title: "Edit", style: .plain, target: self, action: #selector(editObjectsAction))
    self.navBarDeleteButton = UIBarButtonItem(title: "Delete", style: .plain, target: self, action: #selector(deleteObjectsAction))
    self.navBarCancelButton = UIBarButtonItem(title: "Cancel", style: .plain, target: self, action: #selector(cancelAction))
    self.navigationItem.leftBarButtonItems = [navBarEditButton!]
}
override func didReceiveMemoryWarning() {
    super.didReceiveMemoryWarning()
    // Dispose of any resources that can be recreated.
}
@objc private func editObjectsAction(_ sender: UIBarButtonItem) {
    self.navigationItem.leftBarButtonItems = [navBarCancelButton!, navBarDeleteButton!]
}
@objc private func cancelAction(_ sender: UIBarButtonItem) {
    self.navigationItem.leftBarButtonItems = [navBarEditButton!]
}
@objc private func deleteObjectsAction(_ sender: UIBarButtonItem) {
}发布于 2019-03-15 17:50:33
我添加了一个新函数
func refreshNavBarButton (navBarButton: inout UIBarButtonItem) {
    navBarButton = UIBarButtonItem(title: navBarButton.title, style: navBarButton.style, target: navBarButton.target, action: navBarButton.action)
}我每次都会在导航栏按钮显示之前调用它
    refreshNavBarButton(navBarButton: &navBarEditButton!)
    self.navigationItem.leftBarButtonItems = [navBarEditButton!]https://stackoverflow.com/questions/55177246
复制相似问题