Как передать ссылку на объект в модально представленный контроллер представления, который содержится внутри контроллера навигации?
У меня проблема с передачей ссылки на мой объект данных. Контроллер представления представления имеет ссылку на объект данных. Модальный контроллер вида подключен к контроллеру навигации и является его корневым контроллером вида. Вот как я это делаю:
Представляя ВК:
- (IBAction)changeCustomerButtonPress:(UIButton *)sender {
UINavigationController *customersNC = [self.storyboard instantiateViewControllerWithIdentifier:@"customersNC"];
SCCustomersVC *customersVC = (SCCustomersVC *)[self.storyboard instantiateViewControllerWithIdentifier:@"customersVC"];
customersVC.dataObject = self.splitVC.dataObject;
//at this point, customersVC.dataObject exists
[self presentViewController:customersNC animated:YES completion:nil];
}
Когда появляется модальный VC, self.dataObject равен nil.
- (void)viewWillAppear:(BOOL)animated
{
//self.dataObject is nil here.
}
Как правильно это сделать?
1 ответ
Решение
Есть ли у вас навигационный контроллер в ИБ-контроллере? Если не так. Но предполагая, что он у вас есть, вам не следует создавать экземпляр SCCustomersVC, потому что навигационный контроллер сделает это при его создании. Чтобы передать данные, просто получите ссылку на этот контроллер с помощью topViewController:
SCCustomersVC *customersVC = (SCCustomersVC *)[customerNC topViewController];
customersVC.dataObject = self.splitVC.dataObject;