Ios 从另一个视图中删除coreData对象

Ios 从另一个视图中删除coreData对象,ios,uitableview,core-data,Ios,Uitableview,Core Data,我想用if条件从另一个视图中删除coreData对象 因此,在viewControllerA中有实体Buy与属性cellName一起使用。 viewControllerB包含一个tableView和coreData实体列表。当用户删除viewControllerB中的单元格时,还应删除viewControllerA的对象,该对象具有cellName(viewControllerA)=已删除单元格的名称(viewControllerB)。 也许有人可以帮我…可能有两个选项,包括自定义委托,但可以通

我想用if条件从另一个视图中删除coreData对象

因此,在viewControllerA中有实体Buy与属性cellName一起使用。 viewControllerB包含一个tableView和coreData实体列表。当用户删除viewControllerB中的单元格时,还应删除viewControllerA的对象,该对象具有cellName(viewControllerA)=已删除单元格的名称(viewControllerB)
也许有人可以帮我…

可能有两个选项,包括自定义委托,但可以通过通知启动

在viewControllerA中,您可以在ViewWillDisplay或viewDidLoad中注册通知:

    [[NSNotificationCenter defaultCenter] addObserver:self
    selector:@selector(shouldUpdateDisplay:) 
    name:@"SHOULD_UPDATE_DISPLAY"
    object:nil];
注意:在dealloc方法中,您应该将自己从观察者中移除:

[[NSNotificationCenter defaultCenter] removeObserver:self];
然后实现该方法:

- (void) shouldUpdateDisplay:(NSNotification *) notification
{
     [_table reloadData]; // do your updates 
}
在VCB中,当一个元素被删除时,您将发送该通知,并且其他视图控制器应该知道该通知:

[[NSNotificationCenter defaultCenter] 
    postNotificationName:@"SHOULD_UPDATE_DISPLAY" 
    object:self];

这里可能有我遗漏的东西,但你可能只是让VCA注册一个通知,VCB在核心数据更新后发送通知,然后VCA可以刷新并获取核心数据的新状态,我可能是……但由于我对这一切都很陌生,我对核心数据、通知不太了解,。。。也许您可以给我一个代码示例,我将尝试在发送通知时删除VCA中的所有对象:
-(void)shouldUpdateDisplay:(NSNotification*)通知{NSManagedObjectContext*上下文=[self-managedObjectContext];for(int I=0;I<[self.list count]-1;I++{[context deleteObject:[self.list objectAtIndex:i]];[self.tableView重载数据];//进行更新}
但我不可能根据您提供的信息帮助您准确实现。我只想确保您首先正确调用了此函数。收到此通知时需要更新的viewcontroller是否可见?发送通知的viewcontroller是可见的,接收它的是不可见的您是否尝试过在每次viewcontroller调用ViewWillDisplay时重新收集核心数据?这意味着每次它变为可见时,它都会自我更新,并可能解决您的问题