UITableview编辑/完成按钮

时间:2011-03-25 18:22:09

标签: iphone cocoa-touch uitableview uikit

我的桌面和导航栏位于顶部。

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

self.navigationItem.leftBarButtonItem = self.editButtonItem;

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

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

3 个答案:

答案 0 :(得分:55)

使用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
    }
}

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

- (void)viewDidLoad {
    [super viewDidLoad];

    self.navigationItem.rightBarButtonItem = self.editButtonItem;
}

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

答案 1 :(得分:6)

这是我使用的Swift版本:

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

    if editing {

    } else {

    }
}

答案 2 :(得分:0)

那就是我在Swift 4上所做的:

这是viewDidLoad()中的创建栏按钮:

  ngOnInit() {
//subscribe does not exist on type void came up when no return on get
    this.firestore.getRoom().subscribe((room: Room[]) => {
      this.arr = room;
      console.log(this.arr);
    });
  }

在viewDidLoad()下面添加覆盖setEditing():

// init barbutton and set default to true
    self.navigationItem.rightBarButtonItem = self.editButtonItem
    super.isEditing = true