Передача данных из подпредставления в родительское представление с протоколами и делегатами - PullRequest
0 голосов
/ 16 января 2012

Я использую протоколы и делегаты уже пару недель и привык без проблем передавать данные из подпредставления в его родительское представление.

Однако сейчас я пытаюсь передать некоторые данные с помощью протоколов.и делегирует из подпредставления его родительскому представлению в стеке навигации.

то есть

view 0 - to here, missing view 1
-- view 1
--- view 3 - pass from here

, однако проблема заключается в том, что родительское представление настраивается как делегат.способ сделать это.Я установил это такк главному представлению, в котором я передаю все, просто никогда не осуществляется доступ ..

Я надеюсь, что смогу получить некоторую помощь в использовании протоколов и делегатов таким образом (через несколько представлений в стеке навигации)

любая помощь будет принята с благодарностью.

1 Ответ

1 голос
/ 16 января 2012

Проблема с передачей делегатов из представлений заключается в том, что viewController уже был загружен один раз, поэтому выполните следующие действия:

SubResultViewController *subResultViewController = [[SubResultViewController alloc] init];
        [subResultViewController setDelegate:self];

инициализирует новый объект SubResultViewController, а не тот, который уже загружен (инициализирован). Вы должны каким-то образом передать принимающий viewController в представление, из которого вы хотите отправить сообщение. Именно здесь NSNotification пригодится. Вы можете установить получающий контроллер представления в качестве прослушивателя (наблюдателя) для уведомления, а затем в любое время, когда уведомление публикуется с тем же «именем», любое прослушивающее устройство получит сообщение. Как только я узнал, как использовать NotificationCenter был в состоянии общаться между представлениями / классами.

http://developer.apple.com/library/mac/#documentation/Cocoa/Reference/Foundation/Classes/NSNotificationCenter_Class/Reference/Reference.html

...