无法从自定义tableview单元格按钮中删除行

时间:2012-12-04 15:18:50

标签: iphone objective-c ios uitableview

我有一个带有自定义tableviewCell的tableview。在这个tableview单元格中,我有一个用于删除行的按钮。

首先,我通过以下代码创建此tableview。

   UITableView *tableView = [[UITableView alloc] initWithFrame:CGRectMake(0, 70, 320, 150) style:UITableViewStylePlain];
    tableView.autoresizingMask = UIViewAutoresizingFlexibleHeight|UIViewAutoresizingFlexibleWidth;
    tableView.delegate = self;
    tableView.dataSource = self;
    tableView.backgroundColor = [UIColor blackColor];
    tableView.separatorStyle = normal;
    [tableView reloadData];

我有一个约会数组,我用它作为我的数据源。在我的cellForRowAtIndex中,我使用以下代码将我的按钮附加到一个动作。

 cell.btnDelete.tag = indexPath.row;
    [cell.btnDelete addTarget:self action:@selector(deleteAppointment:) forControlEvents:UIControlEventTouchUpInside];

然后我自己动手了。

-(void)deleteAppointment:(id) sender{
        NSLog(@"till here");
    UIButton *button = (UIButton *)sender;
    NSIndexPath *indexPath = [NSIndexPath indexPathForRow:button.tag inSection:0];
    NSLog(@"indexpathc: %d",indexPath.row);

    [tableView beginUpdates];
    [tableView deleteRowsAtIndexPaths: [NSArray arrayWithObject:indexPath]
                     withRowAnimation: UITableViewRowAnimationFade];
    [_exceptions removeObjectAtIndex:indexPath.row];
    [tableView endUpdates];
}

它在我的日志中返回正确的索引路径,但它不会删除tableview中的行。有人能帮助我吗?

亲切的问候

1 个答案:

答案 0 :(得分:0)

您还需要更新方法numberOfRowsInSection。例如,如果要将元素保留在数组中,请从中删除一个元素并在numberOfRowsInSection中返回更新的数组。