tablerow删除但仍在表视图中显示

时间:2011-02-09 07:28:11

标签: iphone ipad iphone-sdk-3.0 ios4 ios-simulator

我的数据显示在表上,当我选择数据以从数据库中删除它而不是从表中删除时,我返回到其他视图并再次进入删除表视图然后删除数据不再显示 我正在使用此代码...

- (void)deleteRowsAtIndexPaths:(NSArray *)indexPath withRowAnimation:(UITableViewRowAnimation)animation
{

    NSLog(@"Hello");

}


-(void) tableView:(UITableView *)tableView
commitEditingStyle:(UITableViewCellEditingStyle)editingStyle 
forRowAtIndexPath:(NSIndexPath *)indexPath 

{
//  int row = [indexPath row];
    [self.table beginUpdates];
    if (editingStyle == UITableViewCellEditingStyleDelete) 
    {   
        Hadits *delHadit = [self.allBookMarks objectAtIndex:indexPath.row];
        dbAccess *dbmethods = [[dbAccess alloc] init]; 
        NSInteger delHaditid = delHadit.haditid;
        [dbmethods deleteBookMark:delHaditid];
        [dbmethods release];
    }       

    [self deleteRowsAtIndexPaths:[NSArray arrayWithObject:indexPath]
                          withRowAnimation:UITableViewRowAnimationFade];
    [self.table endUpdates];

    NSLog(@"Hello");
    [self.table reloadData];

}

......需要帮助...... 关心Haseeb

2 个答案:

答案 0 :(得分:1)

在视图中将出现准备你的数组有记录和在commitEditing中添加一行。

[self viewWillApear:YES];

并在viewWillAppear中添加此行

[yourTable reloadData];
从db。

获取数据后

答案 1 :(得分:1)

没有错误(或者我认为没有显示相关代码)。您已从数据库中删除了该条目,但我认为您错过了从您的数组中删除该条目作为您的tableview数据源。

-(void) tableView:(UITableView *)tableView
commitEditingStyle:(UITableViewCellEditingStyle)editingStyle 
forRowAtIndexPath:(NSIndexPath *)indexPath 
{
    [self.table beginUpdates];

    if (editingStyle == UITableViewCellEditingStyleDelete) 
    {   
    //  [self.table deleteRowsAtIndexPaths:[NSArray arrayWithObject: indexPath] withRowAnimation:UITableViewRowAnimationFade];
        Hadits *delHadit = [self.allBookMarks objectAtIndex:indexPath.row];
        dbAccess *dbmethods = [[dbAccess alloc] init]; 
        NSInteger delHaditid = delHadit.haditid;
        [dbmethods deleteBookMark:delHaditid];
        [dbmethods release];
        [self.allBookMarks removeObject:delHadit];/// change of code 
    }
    //[self.table reloadData];
    [table endUpdates];
}