Ios 当弹出到ParentViewController时,ChildViewController中的数据未更新

Ios 当弹出到ParentViewController时,ChildViewController中的数据未更新,ios,objective-c,uiviewcontroller,Ios,Objective C,Uiviewcontroller,我有一个ParentViewController,其中我正在使用另一个ChildViewController的视图,通过ViewDidLoad UIStoryboard *sb = [UIStoryboard storyboardWithName:@"Main" bundle:nil]; _childVC = [sb instantiateViewControllerWithIdentifier:@"ChildViewController"]; [self addChildV

我有一个
ParentViewController
,其中我正在使用另一个
ChildViewController
的视图,通过
ViewDidLoad

 UIStoryboard *sb = [UIStoryboard storyboardWithName:@"Main" bundle:nil];
    _childVC = [sb instantiateViewControllerWithIdentifier:@"ChildViewController"];

    [self addChildViewController:_childVC];
    [self.myView addSubview:_childVC.view];
    [_childVC didMoveToParentViewController:self];
现在,ChildVC中有一个tableView,它具有来自dataArray的数据,当父视图控制器第一次调用时,它工作正常,并在self.myView中显示正确的数据,但当我推到另一个视图控制器时,会更新子视图控制器tableView的dataArray。现在,当我从另一个VC弹出到父视图时,self.myView中的tableview数据没有得到更新

我在ParentView中试过这个

-(void)viewWillAppear:(BOOL)animated{

    [_childVC didMoveToParentViewController:self];
}
这在子视图控制器中

-(void)viewWillAppear:(BOOL)animated{

    [self.tableView reloadData];
}
我没有在ChildVC中添加任何与ParentVC相关的代码。
不关心数据更新的原因和方式,只要在我从父视图控制器推送到其他视图控制器时假装数据正在更新

当父视图控制器被推送覆盖,然后在弹出视图控制器时显示时,不会调用子视图控制器的viewwillappease方法

您需要构建一些机制来通知子视图控制器其数据已更改

以下是几种可能性:

您可以创建在数据更改时广播的通知管理器通知,并在子视图控制器中侦听该通知


您可以设置一个协议,让父视图控制器在父视图即将出现时通知子视图,并使用该协议要求子视图重新加载其表视图。

您没有提供足够的信息。您谈论正在更新的数据,但不告诉我们有关该数据的任何信息,也不告诉我们如何在视图控制器之间共享该数据。也不清楚您所说的“…当我从任何其他VC弹出到父视图时,childView中的数据没有更新”是什么意思。您所说的弹出到父视图是什么意思?您的意思是,如果将新视图控制器推到包含子视图控制器的当前视图控制器的顶部,然后稍后弹出新的视图控制器,以重新公开您发布的父视图控制器的代码?您需要清楚完整地描述您试图解决的问题,否则我们将无法提供帮助。应更新数据,因为在推送时,子视图控制器的表视图中的dataArray正在更新父视图控制器到其他视图控制器。你说得对,从弹出到父视图的事情。因此,问题是具有子视图控制器视图的子视图的“myView”没有显示更新的tableview。这没有真正的帮助。您还没有解决我提出的任何问题。是什么导致您的子视图控制器的table view自我更新?如果您希望它更新其内容,您需要以某种方式向它发送一条重载数据消息。