NSNotification не получено в UIViewController, чье представление является подпредставлением UIScrollview - PullRequest
2 голосов
/ 18 февраля 2011

Я пытаюсь подписать myViewController на пользовательский NSNotification.Иерархия представления выглядит следующим образом:


window
   - rootViewController.view
      - scrollView
          - myViewController.view

Уведомление отправляется в [NSNotificationCenter defaultCenter] с помощью кнопки внутри представления rootViewController.RootViewController прислушивается к уведомлению и отвечает на него очень хорошо.

У меня точно такой же "прослушивающий" код внутри myViewController, но по какой-то причине он не получает уведомление.Если это часть приложения, оно должно получать уведомление, правильно?У меня есть отладочное сообщение внутри метода initWithNibName в myViewController, поэтому я знаю, что оно подписывается на уведомление.Я даже пытался заставить myViewController прослушивать ВСЕ уведомления, установив имя уведомления равным nil.Например:


NSLog(@"main view controller initialized");

[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(statusBarVisibilityChanged:) name:nil object:nil];

Но и там не повезло.Кто-нибудь видел что-нибудь подобное раньше с NSNotifications?

Есть идеи?

Спасибо!

Ответы [ 2 ]

4 голосов
/ 18 февраля 2011

Полагаю, контроллер представления освобожден. Распространенная ошибка - не сохранять контроллер представления при его программном создании.

1 голос
/ 18 февраля 2011

Если вы уверены, что наблюдение настроено правильно, единственное объяснение тому, что я не получил никаких уведомлений, заключается в том, что контроллер освобождается до отправки каких-либо уведомлений.не зависит ни от иерархии представлений, ни от потоков.Если у вас есть (живой) объект, который был настроен в качестве наблюдателя, он обязательно получит уведомления.

...