Objective c 在子视图中删除核心数据后更新表视图

Objective c 在子视图中删除核心数据后更新表视图,objective-c,uitableview,core-data,uiviewcontroller,Objective C,Uitableview,Core Data,Uiviewcontroller,我需要使用UITableView更新MainView控制器中的表视图,在使用删除按钮删除DetailView控制器中的项之后,使用核心数据 核心数据结构: 在MainView控制器中,我有一个包含订单的表,按“订单”将打开一个包含食物和订单的detailview控制器,我可以在其中删除订单。之后,我需要[self-popViewControllerAnimated:YES] 用于删除对象的代码,其中self.orderItem-传递给DetailView控制器的订单: [self.managed

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

核心数据结构:

在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();
        }

最好的方法是使用NSFetchedResultsController。它将对正在获取的数据进行更改,您可以更新该表。这是一个很好的教程

最好的方法是使用NSFetchedResultsController。它将对正在获取的数据进行更改,您可以更新该表。这是一个很好的教程

在主视图控制器的视图中写入代码 用于重新加载表视图

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

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

在主视图控制器的视图中写入代码 用于重新加载表视图

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


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

您应该重新创建
nsfetchrequest
,并在
视图中重新提取coredata中的数据将出现
,并且一旦您的
数据源
更新,调用
[表重新加载数据]

您应该重新创建
nsfetchrequest
,并在
视图中重新提取coredata中的数据,这样会出现
数据源更新后,调用
[table reloadData]

只需调用
[table reloadData]
在此之前,重建您的
数据源
我正在调用视图中的重新加载数据在MainView中出现,但行没有被删除,它们只是清空了您在
numberofrowsinsection
中写入的内容您没有返回
[数据源计数]
?我有它,主要问题是我在子控制器中删除了什么对象,我需要更新添加为以下答案的主控制器只需调用
[表重新加载数据]
,然后重建
数据源,但是行没有被删除,它们只是清空了您在
numberofrowsinsection
中写了什么您没有返回
[datasource count]
?我有,主要问题是,我正在删除子控制器中的对象,我需要更新以下作为答案添加的主控制器WIM调用在视图中重新加载数据显示在主视图中调用它将显示在主视图控制器类中,并设置断点检查此方法是获取调用还是不获取,以及更新您在计数中使用的数组中的行数viewwillappear然后调用reloadDataim在ViewDidDisplay中调用reloadData在mainview中调用它将在mainview控制器类中出现并放置断点检查此方法是否为get call或Not并更新您在计数中使用的数组以获取viewwillappear中的行数,然后调用reloadData