我的任务对于大多数人来说基本上都很简单,但显然我在这里做错了什么。如何呈现空单元格?
我有两个表视图控制器,我想根据一些对象状态来填充它们的单元格。我正在处理核心数据,所以也做fetchResultController
。
在其中一个视图控制器中,我可以更改单元格对象的状态(不是实际的单元格,填充单元格的对象),每当发生这种情况时,我想从表格视图中删除此单元格。在该视图控制器中,我只想呈现填充它们的对象具有status = 0
的单元格。但我不想删除那些被删除的,只是为了更改他们的,然后在其他视图控制器中显示它们,如果他们有status = 1
。
那么什么IM做的是:
每当commitEditingStyle
获取调用:
- (void)tableView:(UITableView *)tableView commitEditingStyle:(UITableViewCellEditingStyle)editingStyle forRowAtIndexPath:(NSIndexPath *)indexPath {
if (editingStyle == UITableViewCellEditingStyleDelete) {
Target *target = [self.fetchedResultController objectAtIndexPath:indexPath];
target.status = @1;
}
if ([_delegate respondsToSelector:@selector(didDeleteObject)]) {
[self fetchData];
[_delegate didDeleteObject];
}
}
现在我脑子里想的是在cellForRowAtIndexPath
方法来添加时,即时通讯回这样的小区的条件:
if ([target.status isEqual:@0]) {
return cell;
}
return NULL;
}
,因为我想提出只有有身份的0细胞...
所以现在显然我不能进入这个表视图,因为我必须在这个方法中返回一个单元格而没有完成,我怎么才能说,如果对象目标的雕像不是1,所以不显示单元格?
其他代码的解决方案将是巨大的:)
感谢!
真棒兄弟!这是有效的,只是一件小事 - 当我终止应用程序并再次运行它时,我确实看到与之前删除的状态1相同的对象...我在哪里说我要获取的状态为0 ..? –
@nickshmick很高兴工作!它应该在FRC委托方法' - (NSFetchedResultsController *)fetchedResultsController'中。另外,当你删除时,你保存了'managedObjectContext'吗?理想情况下,如果设置正确,FRC应该在添加,删除,更新等时为您自动更新tableView。检查这个[教程](http://code.tutsplus.com/tutorials/core-data-from-scratch-nsfetchedresultscontroller--cms-21681)如何使用FRC。这真的很有帮助! – SFF
我在调用viewDidLoad中的fetchData。是的,当我删除tableView中的对象commitEditingStyle即时做CoreDataStack * stack = [CoreDataStack defaultStack];然后[stack saveContext] –