UITableView编辑/完成事件

时间:2010-12-14 21:30:48

标签: uitableview delegates notifications editing

是否有通知或委托方法可用于检测表格视图何时进入编辑状态?

我想要做的是检测表格正在编辑,然后显示一个额外的行,上面写着“添加新项目”或类似内容。

我尝试在加载View Controller时在数组末尾添加“Add New Item”行,然后根据[tableView isEditing]是否为true,返回[array count](因为我是编辑)或[数组计数] - 1(当我不编辑时)。

有什么想法吗? Apple编辑表格中的项目并允许删除的方式是什么?

2 个答案:

答案 0 :(得分:6)

我找到了。覆盖此方法:

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

    // do something
}

答案 1 :(得分:3)

您可以做的是将IBAction添加为editButton的选择器。当点击editButton时,将调用该方法。例如:

-(void)viewDidLoad
{
// ...
[self.editButtonItem setAction:@selector(editAction:)];
[self.navigationItem setRightBarButtonItem: self.editButtonItem];

// .. your code

}

-(IBAction)editAction:(id)sender
{
    UIBarButtonItem * button = ((UIBarButtonItem*)sender);

    if (!self.tableView.editing)
    {
        [self.tableView setEditing:YES animated:YES];
        [button setTitle:@"Done"];
        // do your stuff...
    }
    else
    {
        [button setTitle:@"Edit"];
        [self.tableView setEditing:NO animated:YES];
        // do your stuff...
    }
}

如果您有自己的UIButton并且没有使用标准的self.editButtonItem,那么请使用     [yourButton addTarget:self action:@selector(editAction :) forControlEvents:UIControlEventTouchUpInside]; 并在editAction:method

中将其作为UIButton *处理