didReceiveRemoteNotification: fetchCompletionHandler: открыть из значка против push-уведомления

Я пытаюсь реализовать фоновую обработку push-уведомлений, но у меня возникают проблемы с определением, открыл ли пользователь приложение из push-уведомлений, которые были отправлены, в отличие от открытия его с помощью значка.

- (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);
}

С этим кодом приложение открывается для MPOOpenViewController независимо от того, как пользователь открывает приложение. Как я могу сделать так, чтобы контроллер представления выдвигался, только если они открывают приложение от смахивания уведомления?

С тем же кодом это работало на iOS 6, но с новым методом iOS 7, оно не ведет себя так, как я хочу.

Редактировать: Я пытаюсь запустить приложение на iOS 7 сейчас, и мы не поддерживаем какую-либо версию до iOS 7. Я использовал этот же точный код в версии метода для iOS 6 (без обработчика завершения), и он вел себя так, как нужно. Я ожидал бы этого. Вы бы ударили уведомление, и это будет вызвано. Если вы открываете значок, метод никогда не будет вызван.

Ответы на вопрос(3)

Ваш ответ на вопрос