0

在使用核心数据删除 DetailView 控制器中的带有删除按钮的项目后,我需要使用 UITableView 更新 MainView 控制器中的表视图。

核心数据结构:http: //i.stack.imgur.com/GZ0k8.png

在 MainView 控制器中,我有一个带有订单的表格,按下订单将打开一个带有食物和订单的 detailview 控制器,我可以在其中删除订单。之后我需要[self popViewControllerAnimated:YES];

删除对象的代码,其中 self.orderItem - 订单传递给 DetailView 控制器:

[self.managedObjectContext deleteObject:self.orderItem];
        NSError *error = nil;
        if (![self.managedObjectContext save:&error]) {
            // Replace this implementation with code to handle the error appropriately.
            // abort() causes the application to generate a crash log and terminate. You should not use this function in a shipping application, although it may be useful during development.
            NSLog(@"Unresolved error %@, %@", error, [error userInfo]);
            abort();
        }
4

3 回答 3

2

最好的方法是使用 NSFetchedResultsController。它将作用于它正在获取的数据的更改,并且您可以更新表。这是一个很好的教程。http://www.raywenderlich.com/999/core-data-tutorial-how-to-use-nsfetchedresultscontroller

于 2013-05-16T09:19:56.620 回答
1

在 mainviewController 的 viewWillAppear 中编写代码以重新加载表视图

 //this controller delegate method 
- (void)viewWillAppear:(BOOL)animated
{
[tableview reloadData];
}

当您弹出主视图时,它将被调用

于 2013-05-16T09:32:43.050 回答
0

您应该在更新后的调用中重新创建和nsfetchrequest重新获取 coredata 中的数据。viewWillAppeardatasource[table reloadData]

于 2013-05-16T09:48:36.170 回答