2010-12-14 90 views
7

是否有通知或委托方法可用于检测表视图何时进入编辑状态?UITableView编辑/完成事件

我想要做的是检测表正在编辑,然后显示一个额外的行,说“添加新项目”或类似的东西。

我试着在视图控制器加载后在数组末尾添加“添加新项”行,然后根据[tableView isEditing]是否为true或者返回[array count](当我I正在编辑)或[阵列计数] - 1(当我不编辑时)。

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

回答

6

我找到了。重写此方法:

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

    // do something 
} 
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:自我行动:@选择(editAction :) forControlEvents:UIControlEventTouchUpInside]。 并将其作为editAction中的UIButton *处理:方法