如何在调用父控制器的 viewDidLoad 之前将数据传递给子视图控制器?
How to pass data to child view controller before invocation of parent controller's viewDidLoad?
我需要在我的应用程序启动时在容器视图中显示用户数据 运行。
我经常在父视图控制器的 viewDidLoad
方法中使用 Core Data 读取数据。我尝试通过嵌入转场使用 prepareForSegue
方法将数据发送到子视图控制器。但正如我发现的那样, prepareForSegue
在 viewDidLoad
方法之前被调用。这意味着,prepareForSegue
没有有效数据发送到子视图控制器。
我能用它做什么?
您可以尝试在 class 中创建一个方法(该方法从数据库加载日期)并在方法 prepareForSegue 中调用该方法。
示例:
- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {
(you method)
....
}
加载数据然后在 parrentController.childViewControllers
中找到您的子控制器并将此数据发送给它。示例:
- (void)viewDidLoad {
[super viewDidLoad];
[self loadData];
MyChildViewController childViewController = [self.childViewControllers firstObject];
[childViewController setData:self.dataForChild];
[childViewController updateInterface];
}
loadData、dataForChild、setData、updateInterface 是您的自定义方法/属性。
我需要在我的应用程序启动时在容器视图中显示用户数据 运行。
我经常在父视图控制器的 viewDidLoad
方法中使用 Core Data 读取数据。我尝试通过嵌入转场使用 prepareForSegue
方法将数据发送到子视图控制器。但正如我发现的那样, prepareForSegue
在 viewDidLoad
方法之前被调用。这意味着,prepareForSegue
没有有效数据发送到子视图控制器。
我能用它做什么?
您可以尝试在 class 中创建一个方法(该方法从数据库加载日期)并在方法 prepareForSegue 中调用该方法。 示例:
- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {
(you method)
....
}
加载数据然后在 parrentController.childViewControllers
中找到您的子控制器并将此数据发送给它。示例:
- (void)viewDidLoad {
[super viewDidLoad];
[self loadData];
MyChildViewController childViewController = [self.childViewControllers firstObject];
[childViewController setData:self.dataForChild];
[childViewController updateInterface];
}
loadData、dataForChild、setData、updateInterface 是您的自定义方法/属性。