-2

我有一个应用程序,我正在制作 2 个 Tableview Vertical One 这是 Tableviewcontroller 使用的一个,并且在每个部分中我有 1 行,我在其中创建了另一个 Horizo​​ntal tableview,当我在“AddItemViewController”中添加一个 ManagedObject 时, ManagedObject 保存正确,虽然当 NSFetchedResultsChangeInsert 在 tableviewcontroller 中调用时,它使用要更新的垂直 tableview,而不是水平。

我错过了一些东西,但我无法弄清楚,有什么帮助吗?

4

2 回答 2

0

我通过在 MainViewController 中执行 Fetch 请求解决了这个问题,将其传递给 NSMutableArray,然后在其他 Tableview 中使用,做我的更改,然后 NSManagedObjectContext,向 MainViewController 发送通知,再次重新加载表视图数据

于 2012-11-05T11:50:03.297 回答
0

实际上,下面代码中的 NSFetchresultschangeinsert :

- (void)controller:(NSFetchedResultsController *)controller didChangeObject:(id)anObject
       atIndexPath:(NSIndexPath *)indexPath forChangeType:(NSFetchedResultsChangeType)type
      newIndexPath:(NSIndexPath *)newIndexPath
{
    HorizontalTableCell *fuck=[[HorizontalTableCell alloc]init];
    UITableView *tableView= fuck.horizontalTableView;
    //UITableView *tableView = self.tableView;
    //newIndexPath.section==indexPath.section;
    //NSLog(@"The Type of the Fetched %d",i);

    switch(type) {
        case NSFetchedResultsChangeInsert:

            [tableView insertRowsAtIndexPaths:@[newIndexPath] withRowAnimation:UITableViewRowAnimationFade];
            break;

        case NSFetchedResultsChangeDelete:
            [tableView deleteRowsAtIndexPaths:@[indexPath] withRowAnimation:UITableViewRowAnimationFade];
            break;

        case NSFetchedResultsChangeUpdate:
            [self configureCell:[tableView cellForRowAtIndexPath:indexPath] atIndexPath:indexPath];
            break;

        case NSFetchedResultsChangeMove:
            [tableView deleteRowsAtIndexPaths:@[indexPath] withRowAnimation:UITableViewRowAnimationFade];
            [tableView insertRowsAtIndexPaths:@[newIndexPath] withRowAnimation:UITableViewRowAnimationFade];
            break;
    }
}

默认情况下,此代码位于 Apple Default CoreData 、 UItableViewController 中

于 2012-09-13T18:57:54.433 回答