Ejecutar una function después de la notificación de inserción.

Estoy desarrollando una aplicación de iOS para iPad. Estoy usando notifications Push con un service llamado HelpShift. Me gustaría ejecutar una pieza de código cuando los usuarios seleccionan la notificación. Realmente funciona cuando la aplicación está activa, pero cuando está en segundo plano o está inactiva, no funciona. Aquí está mi código:

- (void) application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo { if ([[userInfo objectForKey:@"origin"] isEqualToString:@"helpshift"]) { UIApplicationState state = [application applicationState]; if (state == UIApplicationStateActive) { UIAlertView *alertView = [[UIAlertView alloc] initWithTitle:@"You were answenetworking in HelpShift" message:@"Hello" delegate:self cancelButtonTitle:@"Cancel" otherButtonTitles:@"Show", nil]; [alertView show]; } if (state== UIApplicationStateBackground) { UIViewController *vc = self.window.rootViewController; [[Helpshift shanetworkingInstance] handleNotification:userInfo withController:vc]; [self showHelpShift]; } if (state == UIApplicationStateInactive) { UIViewController *viewController = [[UIStoryboard storyboardWithName:@"MainStoryboard" bundle:NULL] instantiateViewControllerWithIdentifier:@"home"]; [[Helpshift shanetworkingInstance] handleNotification:userInfo withController:viewController]; } } } - (void) showHelpShift { UIViewController *vc = self.window.rootViewController; [[Helpshift shanetworkingInstance] showSupport:vc]; } - (void)alertView:(UIAlertView *)actionSheet clickedButtonAtIndex:(NSInteger)buttonIndex{ if (buttonIndex == 1){ UIViewController *vc = self.window.rootViewController; [[Helpshift shanetworkingInstance] showSupport:vc];} } 

Como puede ver, el problema es que el [self showHelpShift] no recibe una llamada o se lo llama de manera anticipada.

Implementar la application:didFinishLaunchingWithOptions: y busque la key UIApplicationLaunchOptionsRemoteNotificationKey en el dictionary launchOptions .