Доступ к объекту из контроллера представления контейнера

Ниже показан стек навигации.

UIViewController -> UIContainerViewController -> UINavigationViewController -> UIPageViewController -> UIViewController

Родительское представление (контроллер первого представления) содержит кнопку, а дочернее представление (контроллер последнего представления) содержит UITextField.

Что я хочу сделать, так это то, что когда я нажимаю кнопку в родительском представлении, текст из текстового поля дочернего представления должен быть сохранен в объекте NSString в родительском представлении.

Что я пробовал:

ChildViewController *CV = [self.childViewControllers lastObject]

ChildViewController *CV = [self.storyboard instantiateViewControllerWithIdentifier:@"ChildViewController"]

Ничего из вышеперечисленного не работает.

Заранее спасибо.


person Manan Devani    schedule 02.04.2016    source источник


Ответы (1)


Используйте уведомления, поскольку отношения между контроллерами трудно обработать, когда вы нажимаете кнопку, публикуйте уведомление buttonPressed, а когда дочерний VC получает уведомление, отправляет уведомление needToStoreString и помещает строку в userInfo уведомления, чтобы родительский VC мог знать.

person MudOnTire    schedule 02.04.2016
comment
Уведомления могут помочь и являются неплохим способом общения между объектами, но я бы не стал делать это для всех. И у вас хотя бы есть делегаты для общения... - person Alex Cio; 10.05.2017