iOS 7 Avertissement d'erreur: Tentative de démettre de-vue-contrôleur <UINavigationController: 0x1568db40> alors qu'une présentation ou de les rejeter est en cours

J'ai des problème dans iOS 7 qui n'apparaît pas dans iOS 6.

J'ai une manette de navigation qui affiche une autre manette de navigation pour ajouter un employé. Cette deuxième contrôleur est présenté sous forme modale. Lorsque je rejette le deuxième contrôleur, soit avec un "Annuler" ou "ok", j'obtiens une erreur. Voici le message d'erreur:

QuickSchedule[880:60b] Avertissement: Tentative de démettre de vue
contrôleur alors qu'une présentation
ou de les rejeter est en cours!

Je suis à l'aide d'un dérouleur segue et la destitution de la première manette à l'aide de la suite de code.

C'est dans ScheduleViewController.m (Mon contrôleur principal de la fenêtre)

- (IBAction)done:(UIStoryboardSegue *)segue
{
    if ([[segue identifier] isEqualToString:@"DoneEditing"]) {
        [[MyManager sharedManager] saveChanges];
        [self dismissViewControllerAnimated:YES completion:NULL];
    }
}

La connexion dans la inspecteur pour le bouton "Terminé" est tout simplement
"action -> [détendez-vous fait:]"

Je n'avais pas d'erreurs avant la mise à jour de Xcode 5. Cela a commencé après la mise à jour de Xcode et mon storyboard pour iOS 7.

J'obtiens le même message d'erreur dans différents endroit dans mon application, mais encore une fois, c'est avec un modal présenté-vue-contrôleur.

Je vais de EmployeeViewController à AddEmployeeViewController modal. J'obtiens l'erreur à nouveau quand je reviendrai de AddEmployeeViewController.

EmployeeViewController.m

- (IBAction)done:(UIStoryboardSegue *)segue
{
    if ([[segue identifier] isEqualToString:@"ReturnInput"]) {
        AddEmployeeViewController *addController = [segue sourceViewController];
        if (addController.employee) {
            [[MyManager sharedManager] saveChanges];
            [[self tableView] reloadData];
        }
        if (![self.presentedViewController isBeingDismissed]) {
            [self dismissViewControllerAnimated:YES completion:nil];
        }
    }
}

- (IBAction)cancel:(UIStoryboardSegue *)segue
{
    if ([[segue identifier] isEqualToString:@"CancelInput"]) {
        [self dismissViewControllerAnimated:YES completion:NULL];
    }
}

Ici est AddEmployeeViewController.m

- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {
    if ([[segue identifier] isEqualToString:@"ReturnInput"]) {
        if ([self.firstNameField.text length] || [self.lastNameField.text length]) {

            Employee *newEmployee = [[MyManager sharedManager] createEmployeeWithFirstName:self.firstNameField.text andLastName:self.lastNameField.text];
            [[MyManager sharedManager] addEmployeeToList:newEmployee];
            self.employee = newEmployee;
        }
    }
}

Je suis encore à apprendre, et j'ai cherché pendant des heures en ligne et ne peut pas trouver une réponse à cela. J'ai essayé de mettre le "sauvetage" du code de fin de bloc. Je l'ai mis en arrière et a tenté à l'aide de néant au lieu de NULL à la fin du bloc de l'argument. Comme vous pouvez le voir, j'ai néant en un seul endroit sur un achèvement bloc argument et la valeur NULL sur un autre. Peu importe ce que, l'erreur ne cesse d'apparaître.

Tout fonctionne jusqu'à une fonctionnalité, je viens d'obtenir cette erreur connecté à la console. Toute aide est grandement appréciée.

Note:
Je n'ai pas cette erreur régulière poussé les manettes de navigation. Ce n'est qu'il se passe sur rejetant modal présentés vue des contrôleurs.

Est de vous détendre segue déclenchée à partir d'un bouton, ou est-il connecté directement à la vue-contrôleur?
Il est connecté à UIBarButtonItems Fait et Annuler sur mon AdEmployeeViewController, et UIBarButtonItem Fait sur la vue-contrôleur qui revient à ScheduleViewController.

OriginalL'auteur Darrell | 2013-09-19