Notification Push -didFinishLaunchingWithOptions

Lorsque j'envoie une notification push et mon application est de l'ouvrir ou, dans le fond et que je clique sur la notification push, mon application redirige vers PushMessagesVc viewController (comme prévu)

J'utilise le code ci-dessous pour ceci:

-(void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo {
    UIStoryboard *mainstoryboard = [UIStoryboard storyboardWithName:@"MainStoryboard" bundle:nil];
    PushMessagesVc *pvc = [mainstoryboard instantiateViewControllerWithIdentifier:@"PushMessagesVc"];

    [self.window.rootViewController presentViewController:pvc
                                                 animated:YES
                                               completion:NULL];
}

Il n'y a pas de problème dans le code/scénario ci-dessus, mais si l'application est fermée et que je clique sur une notification push, l'application ne permet pas de rediriger mon PushMessagesVc viewController dans ce cas & l'application reste sur l'écran principal.

Pour le 2e scénario, j'utilise le code suivant:

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
    sleep(1);
    [[UIApplication sharedApplication] registerForRemoteNotificationTypes:(UIRemoteNotificationTypeAlert | UIRemoteNotificationTypeBadge | UIRemoteNotificationTypeNone)];
    [UIApplication sharedApplication].applicationIconBadgeNumber = 1;

    NSDictionary *userInfo = [launchOptions valueForKey:@"UIApplicationLaunchOptionsRemoteNotificationKey"];
    NSDictionary *apsInfo = [userInfo objectForKey:@"aps"];

    if(apsInfo) {
        UIStoryboard *mainstoryboard = [UIStoryboard storyboardWithName:@"MainStoryboard" bundle:nil];
        PushMessagesVc* pvc = [mainstoryboard instantiateViewControllerWithIdentifier:@"PushMessagesVc"];
        [self.window.rootViewController presentViewController:pvc animated:YES completion:NULL];
        return YES;
    }
    return YES;
}

Mais dans ce cas, le PushMessagesVc n'apparaît pas.

Comment puis-je résoudre mon problème?
qu'est-ce que l'avertissement ou d'erreur que vous obtenez dans la console de débogage? qui viewController est la première viewController dans votre scénario? en fait... prendre une capture d'écran de la table de montage séquentiel et de l'inclure dans la réponse.
Il n'y a pas d'erreur, si la demande n'est pas ouvert, lorsque le message et j'ai cliqué sur le message de demande de rester dans la vue principale du contrôleur, car si(apsInfo) bloc ne fonctionne pas dans cette situation.
hm... au lieu de [self.window.rootViewController presentViewController:pvc animated:YES completion:NULL]; essayer cette [self.window setRootViewController:pvc]. (recompiler, exécuté sur le périphérique... mais ne vous méprenez pas, ce n'est pas la réponse exacte à votre question, c'est juste pour vérifier si if(apsInfo) bloc s'exécute ou pas)
Merci beaucoup, la réponse correcte est la réponse. Il est aujourd'hui. Je vous remercie encore.

OriginalL'auteur cdsoft | 2013-12-25