didReceiveRemoteNotification: fetchCompletionHandler: aberto a partir do ícone vs notificação por push

Estou tentando implementar o tratamento de notificações por push em segundo plano, mas estou tendo problemas para determinar se o usuário abriu o aplicativo a partir da notificação por push enviada, em vez de abri-lo no ícone.

- (void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo fetchCompletionHandler:(void (^)(UIBackgroundFetchResult))completionHandler {

    //************************************************************
    // I only want this called if the user opened from swiping the push notification. 
    // Otherwise I just want to update the local model
    //************************************************************
    if(applicationState != UIApplicationStateActive) {
        MPOOpenViewController *openVc = [[MPOOpenViewController alloc] init];
        [self.navigationController pushViewController:openVc animated:NO];
    } else {
        ///Update local model
    }

    completionHandler(UIBackgroundFetchResultNewData);
}

Com esse código, o aplicativo está abrindo para o MPOOpenViewController, independentemente de como o usuário abre o aplicativo. Como posso fazer com que o controlador de exibição seja pressionado apenas se eles abrirem o aplicativo passando a notificação?

Com o mesmo código, isso funcionou no iOS 6, mas com o novo método do iOS 7, ele não se comporta como eu quero.

Editar: Agora estou tentando executar o aplicativo no iOS 7 e não oferecemos suporte a nenhuma versão anterior ao iOS 7. Usei esse mesmo código exato na versão do método para iOS 6 (sem o manipulador de conclusão) e ele se comportou da maneira que Eu esperaria. Você passaria a notificação e isso seria chamado. Se você abrir a partir do ícone, o método nunca será chamado.

questionAnswers(3)

yourAnswerToTheQuestion