我的任務對於大多數人來說基本上都很簡單,但顯然我在這裏做錯了什麼。如何呈現空單元格?
我有兩個表視圖控制器,我想根據一些對象狀態來填充它們的單元格。我正在處理核心數據,所以也做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] –