table reloadData无法正常工作

时间:2011-02-08 05:37:23

标签: iphone ipad iphone-sdk-3.0

我正在使用以下代码从tableview中删除一行以及db, 行一次从db中删除,但是它没有从tableview中删除,直到我退回并且chk aggain,我想当我delet行tableview应该rload数据...  任何的想法 ?

-(void) tableView:(UITableView *)tableView
commitEditingStyle:(UITableViewCellEditingStyle)editingStyle 
forRowAtIndexPath:(NSIndexPath *)indexPath 
{
    [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.table reloadData];//its not working reload data...
  [table endUpdates];
}

2 个答案:

答案 0 :(得分:1)

包括这一行,

[self.allBookMarks removeObjectAtIndex:indexPath.row];

修改

问题不在于reloadData,问题在于您没有更新数据源(self.allBookMarks)。将值更新为self.allBookMarks然后重新加载表。

已编辑的代码

-(void) tableView:(UITableView *)tableView
commitEditingStyle:(UITableViewCellEditingStyle)editingStyle 
forRowAtIndexPath:(NSIndexPath *)indexPath 
{
    [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];
    self.allBookMarks = [dbMethods getAllBookMarks]; 
    [dbmethods release];    
  }
  [self.table reloadData];//its not working reload data...
  [table endUpdates];
}

答案 1 :(得分:0)

什么是self.table?它是您UITableView的类变量吗?您应该注意,您也可以直接引用UITableView,因为它作为tableView传递给该方法。我不知道你的table变量是否设置不正确(通过Interface Builder)或什么,但我尝试使用tableView变量。