UITableview编辑/完成按钮

Nee*_*esh 14 iphone cocoa-touch uitableview uikit

我的顶部有一个tableview和导航栏.

我的导航栏左侧有一个编辑按钮,代码如下.

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

当我点击编辑按钮时,它会变为完成按钮.到目前为止一切都很好.

如果我想在单击完成按钮时执行小操作,我在哪里添加代码?

Ped*_*ges 56

一旦覆盖默认操作,按钮就会停止将更改提交给控制器类 self.editButtonItem.action = @selector(editClicked:);

你应该做的是在你自己的控制器类中覆盖UIViewController的setEditing方法:

- (void)setEditing:(BOOL)editing animated:(BOOL)animated
{
    [super setEditing:editing animated:animated];

    if(editing == YES) 
    {
        // Your code for entering edit mode goes here
    } else {
        // Your code for exiting edit mode goes here
    }
}
Run Code Online (Sandbox Code Playgroud)

您还需要在故事板中将UIBarButtonItem设置为"Edit",或者如果您更喜欢在代码中执行此操作,请使用以下命令:

- (void)viewDidLoad {
    [super viewDidLoad];

    self.navigationItem.rightBarButtonItem = self.editButtonItem;
}
Run Code Online (Sandbox Code Playgroud)

editButtonItem是系统已设置的助手属性,以方便您使用.

  • 谢谢.更简单,我做了` - (void)setEditing:(BOOL)编辑动画:(BOOL)动画{[super setEditing:editing animated:animated]; [self.tableView setEditing:editing animated:animated];}` (9认同)

Esq*_*uth 7

这是我使用的Swift版本:

override func setEditing(editing: Bool, animated: Bool) {
    super.setEditing(editing, animated: animated)

    if editing {

    } else {

    }
}
Run Code Online (Sandbox Code Playgroud)