UILocalNotification – ¿Cómo descubrir si la acción del usuario vino del centro de notifications?

En el método que se llama cuando se ejecuta una notificación:

- (void)application:(UIApplication *)application didReceiveLocalNotification:(UILocalNotification *)notification 

¿Hay alguna forma de descubrir si la notificación proviene del usuario que toca una alerta en el centro de notifications o si la alerta se recibió mientras se ejecutaba la aplicación?

La razón es: Quiero dirigir al usuario a una página específica cuando tocan una alerta. Ese método se llama si se activa una alerta mientras el usuario se encuentra dentro de la aplicación (por lo tanto, no tocaron la alerta en el centro de notifications), y no quiero echarlos a otra pantalla.

Sin embargo, si la aplicación se está ejecutando, o en segundo plano, y han bajado el centro de notifications, quiero llevarlos a una pantalla específica y ese mismo método se llama en esas situaciones.

No puedes, desgraciadamente, hacer exactamente lo que quieres hacer. Lo más cerca que puedes llegar es

 - (void)application:(UIApplication *)application didReceiveLocalNotification:(UILocalNotification *)notification { if (application.applicationState == UIApplicationStateActive) // They didn't come from the notification area else // They did } 

Lamentablemente, no se proporciona información de context al recibir alertas.