Как передать данные в дочерний контроллер представления перед вызовом viewDidLoad родительского контроллера?
Мне нужно отобразить данные пользователя в представлении контейнера, когда мое приложение запускается.
Я обычно читаю данные с Core Data в родительском контроллере представления viewDidLoad
метод. И я попытался отправить данные на контроллер дочернего представления с prepareForSegue
метод с помощью встроенного перехода. Но, как я выяснил, prepareForSegue
называется до viewDidLoad
метод. Это означает, prepareForSegue
не имеет действительных данных для отправки дочернему контроллеру представления.
Что я могу с этим сделать?
2 ответа
Загрузите данные и найдите ваш дочерний контроллер в parrentController.childViewControllers
и отправьте эти данные ему. Пример:
- (void)viewDidLoad {
[super viewDidLoad];
[self loadData];
MyChildViewController childViewController = [self.childViewControllers firstObject];
[childViewController setData:self.dataForChild];
[childViewController updateInterface];
}
loadData, dataForChild, setData, updateInterface - ваши пользовательские методы / свойства.
Вы можете попытаться создать метод в своем классе (метод загружает дату из базы данных) и вызывает этот метод внутри метода prepareForSegue. пример:
- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {
(you method)
....
}