Я работаю над универсальным приложением для iPad и iPhone. У меня есть делегат общего приложения, делегат приложения iPad (подклассы общего ресурса) и делегат приложения iPhone (также подклассы общего ресурса) - все на основе шаблона в XCode. Приложение также имеет общий контроллер просмотра для навигации. В iPad он используется в качестве основного контроллера вида в SplitViewController
. В приложении iPhone он отображается как корневой контроллер UINavigationController
.
В моем делегате общего приложения я набираю JSON
с моего веб-сервера для настройки приложения, и когда я завершил анализ этих данных, я публикую уведомление на NSNotificationCenter
(defaultCenter).
[[NSNotificationCenter defaultCenter] postNotificationName:kDataReady object:nil];
Контроллер общего вида является наблюдателем для этого уведомления.
[[NSNotificationCenter defaultCenter] addObserver:self
selector:@selector(onDataReady:)
name:kDataReady
object:nil];
Когда я запускаю приложение на iPad, контроллер общего вида получает это уведомление и соответствующим образом вызывает селектор. При запуске на iPhone это не так. Общие классы между iPhone и iPad создаются в одном и том же порядке, и я могу проверить это по журналам консоли. Я понятия не имею, почему это не работает, как ожидалось. Помогите!