Après quelques recherches sur le Web sans succès, je viens ici pour vous poser la question de mon avertissement.
En fait, j'ai une vue V1 avec un contrôleur de navigation et je veux pousser une vue modale V2 lorsque le chargement de V1 est terminé . J'utilise donc la méthode performSegueWithIdentifier
(j'utilise le storyboard) . Voici mon code :
[self performSegueWithIdentifier:@"showConnexionViewSegue" sender:self];
Et quand je compile, je reçois cet avertissement:
Unbalanced calls to begin/end appearance transitions for <UINavigationController: 0x6849b30>
Quelqu'un peut-il m'aider?
On dirait que vous effectuez probablement la transition dans -viewWillAppear:
, générant ainsi deux messages -viewWillAppear:
sans 2 messages -viewDidAppear
correspondants.
Essayez d'effectuer la transition dans -viewDidAppear
.
'Appels non équilibrés pour commencer/terminer les transitions d'apparence'
Dit qu'une animation est commencée avant que la dernière animation en rapport ne soit pas terminée . Alors, est-ce que vous ouvrez un contrôleur de vue avant de pousser le nouveau? Si oui, essayez de le faire sans animation [self.navigationController popToRootViewControllerAnimated: NO];
Et voir si cela résout le problème, Dans mon cas, cela a fait l'affaire.
J'ai eu ce problème, mais ce que j'avais fait est sur un UIViewController
j'avais lié un Segue à un UIButton
et l'avais aussi codé dans une fonction nextBtnPressed:
, donc je poussais en fait deux nouveaux UIViewControllers
sur la pression d'un bouton. Le limiter à la seule division corrigée. Mais il a fallu des recherches pour voir que j'avais fait le double.
Les raisons en sont multiples et très spécifiques au contexte et à la programmation. Par exemple, ce que je faisais était
Ce que j’ai découvert, c’est que si je n’ai PAS les instructions pour ces 3 étapes l’une après l’autre (si je les mélange), alors j’obtiens l’erreur "Appels non équilibrés ..." De plus, si je chronomètre la Push du viewcontroller à moins de 1,4 seconde, je reçois aussi le message.
Donc, vérifiez que la séquence et le timing des instructions de votre programme sont corrects.