Comment correctement ignorer un UIAlertView par programmation dans iOS 7?

Quand mon app entre l'arrière-plan, mon modal présenté view controller rejette une alerte de vue comme si...

//called when view controller receives a UIApplicationDidEnterBackgroundNotification
- (void)applicationDidEnterBackground:(NSNotification *)notification
{
    if (self.alertView) {
        [self.alertView dismissWithClickedButtonIndex:0 animated:NO];
        self.alertView = nil;
    }
}

Lorsque mon appli revient à l'avant-plan, sans avoir été résilié, l'affichage alerte a disparu. Toutefois, le bouton de la barre d'éléments dans la barre de navigation (à partir d'un UINavigationController) sont toujours en grisé comme si l'alerte de vue étaient toujours affiché.

En outre, rejetant le modèle-vue-contrôleur (en appuyant sur grisé bouton de la barre d'élément) révèle que le bouton de la barre d'articles pour la présentation de-vue-contrôleur sont également estompée. Les boutons de la barre d'éléments sont fonctionnels, mais ils restent grisés.

Alors, comment puis-je onu-dim le bouton de la barre d'articles? Ou, comment rejeter un affichage des alertes par programmation dans iOS 7, en réponse à l'application d'entrer le fond?

La iOS 7 de l'INTERFACE utilisateur Guide de Transition les états suivants:

Lorsqu'une alerte ou d'action de la feuille apparaît, iOS 7 s'éteint automatiquement la teinte de la couleur de la vue derrière elle. Pour répondre à ce changement de couleur, un affichage personnalisé de la sous-classe qui utilise la nuance de couleur dans son rendu doit l'emporter sur les tintColorDidChange pour actualiser le rendu le cas échéant.

Mes barres de navigation et le bouton de la barre d'objets ne sont pas des vues personnalisées; je n'ai pas de sous-classe. J'ai créé les barres de navigation dans la table de montage avec leurs attributs par défaut (même avec le bouton de la barre d'éléments). Donc il n'y a pas de place pour moi pour remplacer tintColorDidChange.

Tous de mon point de vue utilisation de la valeur par défaut pour leur nuance de couleur à la propriété.

J'ai essayé de re-paramétrer la teinte de la couleur à la valeur par défaut sans succès:

if (self.alertView) {
        [self.alertView dismissWithClickedButtonIndex:0 animated:NO];
        self.view.tintColor = nil;
        self.view.window.tintColor = nil;
        self.alertView = nil;
    }

J'ai aussi essayé de re-paramétrer la teinte de la couleur dans la vue du contrôleur de viewDidAppear: sans succès.

J'ai aussi essayé le réglage de la vue principale de l'tintAdjustmentMode à la "normale", sans succès:

if (self.alertView) {
    [self.alertView dismissWithClickedButtonIndex:0 animated:NO];
    self.alertView = nil;

    self.view.tintAdjustmentMode = UIViewTintAdjustmentModeNormal;
}

Par ailleurs, si l'application a été licenciée alors qu'en arrière-plan, l'application redémarre avec le bouton de la barre d'éléments avoir la bonne teinte (c'est à dire, de l'onu-en grisé).

source d'informationauteur bilobatum