2015-09-14 41 views
0

我有一個tableView,我可以在其上正常添加單元格。就這樣你明白了,我的tableView是由一個核心數據填充的,我使用fetch來獲取這些項目並將它們添加到一個可變數組中,這一切都是平常的。儘管如此,我從tableview中調用重載方法。但是如果我進入單元格來編輯它的內容,當我回到它時,tableview會自動重新排序,我認爲這是因爲重載方法,但如果我不調用它,則沒有任何東西顯示出來。這裏是我的提取:TableView自動重排

NSManagedObjectContext *managedObjectContext = [self managedObjectContext]; 
NSFetchRequest *fetchRequest = [[NSFetchRequest alloc] initWithEntityName:@"Entity1"]; 
NSFetchRequest *fetchRequest2 = [[NSFetchRequest alloc] initWithEntityName:@"Entity2"]; 
self.titles = [[managedObjectContext executeFetchRequest:fetchRequest error:nil]mutableCopy]; 
self.stitles = [[managedObjectContext executeFetchRequest:fetchRequest2 error:nil]mutableCopy]; 

[self.tableView reloadData]; 

此外,它只重新排列第二個數組,一個字幕。肯定有辦法阻止這種情況發生或以某種方式重新加載tableView。

回答

1

您應該重用您的fetchedResultsController屬性。在NSFetchedResultsControllerDelegate委託方法中,使用如下所示:

- (NSFetchedResultsController *)fetchedResultsController 
{ 
    if (_fetchedResultsController != nil) { 
     return _fetchedResultsController; 
    } 
} 
0

實際上並不需要重新加載整個tableview。您可以像這樣重新加載特定單元格:

[self.tableView selectRowAtIndexPath:selectedRow animated:NO scrollPosition:UITableViewScrollPositionNone];