2013-11-24 4 views
0

У меня есть конкретный способ, я хочу загрузить представления и заставить их делать что-то. Внутри моих didFinishLaunchingWithOptions загружают окно:Загрузка просмотров в определенном порядке

[[self window] makeKeyAndVisible]; 

Теперь внутри контроллера зрения, я должен попросить местоположение пользователя, но не сразу. У меня есть наблюдатель уведомлений внутри контроллера представления, который делает это. Для этого я использую центр nsnotification. В своем AppDelegate я отправляю уведомление внутри файла didFinishLaunchingWithOptions.

Мой вопрос: если я добавлю наблюдателя в свой контроллер просмотра внутри метода awakeFromNib, будет ли он по-прежнему вызываться из метода didFinishLaunchingWithOptions при отправке уведомления? Сначала я вызываю [[self window] makeKeyAndVisible], а затем публикую уведомление. Мой страх - это то, что если awakeFromNib не вызван достаточно рано, и наблюдатель не зарегистрирован, и я отправляю уведомление. Это испортило бы опыт для пользователя.

ответ

0

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

Моя рекомендация - иметь постоянный объект данных, который обрабатывает эти уведомления. Делегат приложения может обновлять объект данных, и контроллер представления может считывать данные из объекта данных, но он не требует какой-либо определенной последовательности загрузки.

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