如何识别self.editButtonItem按钮的点击事件?

Con*_*sed 18 iphone uinavigationcontroller uinavigationitem

我使用代码将UINavigationController的左侧栏按钮设置为编辑按钮

leftBarButton = self.editButtonItem;
Run Code Online (Sandbox Code Playgroud)

我想根据编辑按钮的单击操作更改其他按钮的一些禁用/启用属性.

如何找到是否按下编辑按钮?

jrt*_*ton 34

编辑按钮的操作会向视图控制器发送setEditing:animated消息.在子类中重写此项以在进入或退出编辑模式时执行其他操作.

务必super在最后调用实现来管理转换到编辑视图的其余部分.


Con*_*sed 19

所以最后我得到了解决方案......

-(void)setEditing:(BOOL)editing animated:(BOOL)animated {

    [super setEditing:editing animated:animated];

    if(editing) {
        //Do something for edit mode
    }

    else {
        //Do something for non-edit mode
    }

}
Run Code Online (Sandbox Code Playgroud)

将调用此方法而不更改self.editButtonItem按钮的原始行为.


小智 7

在Swift中:

@IBOutlet weak var tableView: UITableView!

override func viewDidLoad() {
    super.viewDidLoad()

   ....
    self.navigationItem.leftBarButtonItem = self.editButtonItem()
}

override func setEditing(editing: Bool, animated: Bool) {
    // Toggles the edit button state
    super.setEditing(editing, animated: animated)
    // Toggles the actual editing actions appearing on a table view
    tableView.setEditing(editing, animated: true)
}
Run Code Online (Sandbox Code Playgroud)