我想刷新tagListTableView。
但它没有刷新。
点击UITableview单元格上的删除按钮时,可以删除coraData日期中的对象。
但是,删除表格视图中的单元格仍然会在屏幕上显示为空白。
我试图在viewWillAppear,viewDidAppear,.....更多的[tagListTableView reloadData]。
我错过了什么?
- (UITableViewCellEditingStyle)tableView:(UITableView *)tableView editingStyleForRowAtIndexPath:(NSIndexPath *)indexPath {
return UITableViewCellEditingStyleDelete;
}
- (void)tableView:(UITableView *)tableView
commitEditingStyle:(UITableViewCellEditingStyle)editingStyle
forRowAtIndexPath:(NSIndexPath *)indexPath {
if (editingStyle == UITableViewCellEditingStyleDelete) {
Voca_Tag *tag = (Voca_Tag *)[self.fetchedResultsController objectAtIndexPath:indexPath];
UITableViewCell *cell = [tagListTableView cellForRowAtIndexPath:indexPath];
[cell setSelected:NO animated:YES];
[tag.managedObjectContext deleteObject:[self.fetchedResultsController objectAtIndexPath:indexPath]]; // [tableView deleteRowsAtIndexPaths:[NSArray arrayWithObject:indexPath] withRowAnimation:YES];
[tagListTableView reloadData];
[pickedTags removeObject:tag];
cell.accessoryType = UITableViewCellAccessoryNone;
NSError *error = nil;
if (![tag.managedObjectContext save:&error]) {
NSLog(@"Unresolved error %@, %@", error, [error userInfo]);
abort();
}
}
}
- (BOOL)tableView:(UITableView *)tableView
canEditRowAtIndexPath:(NSIndexPath *)indexPath {
return YES;
}
答案 0 :(得分:0)
if (editingStyle == UITableViewCellEditingStyleDelete) {
Voca_Tag *tag = (Voca_Tag *)[self.fetchedResultsController objectAtIndexPath:indexPath];
UITableViewCell *cell = [tagListTableView cellForRowAtIndexPath:indexPath];
[cell setSelected:NO animated:YES];
[tag.managedObjectContext deleteObject:[self.fetchedResultsController objectAtIndexPath:indexPath]]; // [tableView deleteRowsAtIndexPaths:[NSArray arrayWithObject:indexPath] withRowAnimation:YES];
//********
//REMOVE the object before reloading the table
[pickedTags removeObject:tag];
[tagListTableView reloadData];
cell.accessoryType = UITableViewCellAccessoryNone;
NSError *error = nil;
if (![tag.managedObjectContext save:&error]) {
NSLog(@"Unresolved error %@, %@", error, [error userInfo]);
abort();
}
}
在重新加载tableview之前,你应该从你的pickTags中删除对象,你在重新加载后就是这样做了。
它可能对你有帮助。