我正在使用以下代码从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];
}
答案 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
变量。