Именно так я и реализовал. В методе 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];
Это очень хорошо работает для меня. Надеюсь, это поможет.