滑动UITableViewCell删除UITableViewController中的不是commitEditingStyle

时间:2014-07-04 07:33:25

标签: ios objective-c uitableview

我正在使用UITableViewController,我想滑动删除单元格。已经连接到dataSource和delegate。

随机检测, 有时控制台打印

attempting to set a swipe to delete cell when we already have one....that doesn't seem good

他是我的代码,

-(BOOL)tableView:(UITableView *)tableView canEditRowAtIndexPath:(NSIndexPath *)indexPath
{
    return YES;
}
- (UITableViewCellEditingStyle)tableView:(UITableView *)tableView editingStyleForRowAtIndexPath:(NSIndexPath *)indexPath
{  
    return UITableViewCellEditingStyleDelete; 
}


-(void)tableView:(UITableView *)tableView commitEditingStyle:(UITableViewCellEditingStyle)editingStyle forRowAtIndexPath:(NSIndexPath *)indexPath
{
    if (editingStyle == UITableViewCellEditingStyleDelete) {

    }
}

修改

我的cellForRow AtIndexPath

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{

    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:kFavouriteCell forIndexPath:indexPath];

    [self customizeFavouriteCell:cell withIndexPath:indexPath];
    return cell;
}

2 个答案:

答案 0 :(得分:0)

您需要删除单元格的数据,然后删除单元格。使用deleteRowsAtIndexPaths:withRowAnimation:

在此协议功能中:

-(void)tableView:(UITableView *)tableView commitEditingStyle:(UITableViewCellEditingStyle)editingStyle forRowAtIndexPath:(NSIndexPath *)indexPath
{
    if (editingStyle == UITableViewCellEditingStyleDelete) {
        // ... delete data here ...
        [tableView deleteRowsAtIndexPaths:@[indexPath] withRowAnimation:UITableViewRowAnimationAutomatic];
    }
}

如果您有关于执行其中任何一项的更具体问题,请与我们联系。

答案 1 :(得分:0)

您可以使用:

- (void)tableView:(UITableView *)tableView commitEditingStyle:                   
(UITableViewCellEditingStyle)editingStyle forRowAtIndexPath:(NSIndexPath *)indexPath {
if (editingStyle == UITableViewCellEditingStyleDelete) {
//add code here for when you hit delete      
}
}