Текущее представление при получении локального уведомления

С iOS 5 и раскадровкой, как лучше всего представить представление, когда пользователь входит в приложение после получения локального уведомления?

Я читал, что это можно сделать с помощью NSNotificationCenter, но так ли это с раскадровкой и переходами?


person simonbs    schedule 28.11.2011    source источник


Ответы (1)


Я именно так и реализовал. В методе didFinishLaunchingWithOptions: AppDelegate я сделал следующее:

   UILocalNotification *notification = 
   [launchOptions objectForKey:UIApplicationLaunchOptionsLocalNotificationKey];
   [self application:application didReceiveLocalNotification:notification];

Я сделал это, чтобы хранить логику в одном месте. Затем в методе didreceiveLocalNotification: я использовал NSNotificationCenter:

    // Let another view handle the display        
    NSNotificationCenter * nc = [NSNotificationCenter defaultCenter];
    [nc postNotificationName:@"SHOW_VERSE" 
                      object:self 
                    userInfo:notification.userInfo];

Представление, которое обрабатывает отображение, является первым UIViewController для раскадровки. В этом классе в методе viewDidLoad:

    [[NSNotificationCenter defaultCenter] addObserver:self  
                  selector:@selector(receivedLocalNotification:) 
                      name:@"SHOW_VERSE" 
                    object:nil];

Это работает очень хорошо для меня. Надеюсь, поможет.

person thephatp    schedule 14.01.2012
comment
Как вы гарантируете, что метод viewDidLoad вызывается (и регистрируется обработчик уведомлений) ДО публикации уведомления? - person elsurudo; 11.05.2012