如何在调用父控制器的viewDidLoad之前将数据传递给子视图控制器?

时间:2015-04-15 08:02:49

标签: ios core-data storyboard uicontainerview

当我的应用程序开始运行时,我需要在容器视图中显示用户数据。

我经常在父视图控制器的viewDidLoad方法中使用Core Data读取数据。我尝试通过嵌入segue使用prepareForSegue方法将数据发送到子视图控制器。但正如我所知,在prepareForSegue方法之前调用了viewDidLoad。这意味着,prepareForSegue没有有效数据要发送到子视图控制器。

我该怎么办?

2 个答案:

答案 0 :(得分:0)

您可以尝试在类中创建方法(该方法从数据库加载日期)并在方法prepareForSegue中调用此方法。 例如:

- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {
     (you method) 
     ....

}

答案 1 :(得分:0)

加载数据,然后在parrentController.childViewControllers中找到您的子控制器并将此数据发送给它。例如:

- (void)viewDidLoad {
    [super viewDidLoad];
    [self loadData];
    MyChildViewController childViewController = [self.childViewControllers firstObject];
    [childViewController setData:self.dataForChild];
    [childViewController updateInterface];
}

loadData,dataForChild,setData,updateInterface是您的自定义方法/属性。