2012-05-26 1 views
0

Я создаю приложение с различными контроллерами nav. Все изначально инициализируются.Проблема с UINotification в iOS/объекте C

Скажем, у меня есть 3 контроллеры нав A, B и C.

взгляд контроллера от B (скажем, B1) отправляет уведомление о том, как предполагается услышать от вида контроллера в (скажем, А1). После этого мы перейдем к контроллеру A1.

Однако, если мы находимся в контроллере представления B1 с самого начала (и никогда не доходили до контроллера A1), тогда A1 не получает уведомление. Тем не менее, он получает его во второй раз.

ИЛИ, если я один раз вхожу в A1, затем уведомления принимаются правильно.

Может ли кто-нибудь любезно помочь мне? Благодарю.

NB: код слушателей находится в начале A1. Он попадает (я проверял с помощью контрольных точек).

+0

Можете ли вы перефразировать свой вопрос, его не очень ясно, указывает ли B1 уведомление или прослушивает уведомления. – 0x8badf00d

+0

@ 0x8badf00d: Сообщения о сообщениях B1. A1 прослушивает эти уведомления. – Ahsan

ответ

0

Поскольку вы заявляете, что уведомление получено после того, как представление отображается один раз, мое подозрение заключается в том, что вы регистрируетесь для уведомлений в методе, который не запускается до отображения представления (viewDidLoad, viewDidAppear: и т. Д.). ,

Если это так, попробуйте переместить регистрацию уведомлений в зависимости от того, какой метод init вы используете в ViewControllers.

+0

Я делаю это в методе 'init' .. :( – Ahsan

+0

Хм. Тогда я в растерянности. Я буду продолжать думать, и если я придумаю что-то, я дам вам знать. больше контекста или кода для публикации, которые могут помочь. –

0

NSNotification можно наблюдать через все приложения. Итак, чтобы сделать то, что вы планируете делать, я бы использовал логический флаг или счетчик. Вы можете поместить эти индикаторы в класс appDelegate или использовать глобальные переменные.

 Смежные вопросы

  • Нет связанных вопросов^_^