Я новичок, и у меня есть проект, в котором мне нужно передать данные обратно из дочернего контроллера. В частности, у меня есть представление выбора в моем контейнере, и я хочу иметь возможность использовать его для выбора параметра (скажем, чтобы упростить выбор цвета из массива из десяти цветов). Затем я хотел бы иметь доступ к выбранному цвету в моем родительском контроллере представления и что-то с ним делать. Я исследовал это в течение нескольких дней, и самый близкий ответ на то, что я ищу, я нашел в соответствующем вопросе на S.O. Вот:
«Что касается передачи значения контроллеру containerView, вы можете создать свойство в ChildViewController значения, которое вы хотите передать. Затем в вашем ParentViewController сделайте что-то вроде следующего:
self.ChildViewController.yourProperty = yourValue
Обратное можно сделать 4 способами:
Вы можете создать протокол делегата для передачи данных между вашими контроллерами.
Вы можете опубликовать уведомление в своем ChildViewController и добавить родительский контроллер в качестве наблюдателя.
Вы можете использовать КВО.
И самый простой выход, вы можете создать свойство в вашем parentviewController и получить к нему доступ следующим образом:
((YourParentViewControllerClassType *)self.parentViewController).yourParentProperty = TheValueYouWant;
Теперь я хотел бы сначала попробовать четвертый вариант, поскольку делегирование, kvo и так далее — это варианты, о которых я читал, но еще не готов взяться за них. В чем мне нужна помощь, так это в последнем варианте.
Скажем, у меня есть свойство в моем дочернем контроллере представления, где я храню выбранный цвет. Что-то типа:
@interface ViewController ()
@property NSString *ChosenColorInChildVC;
@end
И потом, позже:
self.ChosenColorInChildVC = [self pickerView:myPickerView titleForRow:[myPickerView selectedRowInComponent:1] forComponent:1]];
как бы я передал это значение, используя предложенный:
((YourParentViewControllerClassType *)self.parentViewController).yourParentProperty = TheValueYouWant;
Может ли кто-нибудь еще немного поглумиться для меня? Спасибо