2

Dans un projet que je vous écris, je reçois cette erreur lorsque je présente un nouveau contrôleur de vue:Obtenir cet avertissement « alors qu'une présentation est en cours » (Xcode)

tentative de présenter .... tout une présentation est en cours!

Je pense que cela se produit parce que je présente d'abord un nouveau contrôleur de vue, puis dans cette vue, je présente un autre contrôleur de vue. Le programme ne tombe pas en panne ou tout ce qu'il exécute très bien, et il n'y a pas d'erreurs ou d'avertissements dans mon code. Donc, ma question est la suivante: est-ce que c'est quelque chose que je devrais être concerné et si oui, comment puis-je le résoudre?

Merci à l'avance :)

Répondre

2

Il est, comme vous l'avez dit, probablement causé par la présentation de deux contrôleurs de vue en même temps. Attendez de présenter le deuxième contrôleur de vue jusqu'à ce que le premier ait été entièrement présenté. Un bon emplacement serait de le faire en viewDidAppear.

0

J'ai trouvé mon problème, comme Scott l'a écrit parce que je présentais 2 contrôleurs de vue en même temps. C'est arrivé parce que j'avais un bouton qui avait un UILongPressGestureRecognizer, qui montrait le nouveau contrôleur de vue. Le problème était que lorsque vous utilisez un UILongPressGestureRecognizer, la méthode appelée est appelée deux fois. D'abord quand la pression longue est détectée et quand votre doigt est libéré de l'écran. Ainsi, la méthode presentViewController de la même vue a été appelée deux fois. J'ai corrigé ceci en ne réagissant qu'à la première détection. Voici le code:

- (void)loadButtonSettings:(UILongPressGestureRecognizer *)recognizer { 

    if (recognizer.state == UIGestureRecognizerStateBegan) { 

    } 
} 
1

Dans mon cas, je me suis connecté un UIViewControllersUIButton avec une seconde UIViewController par un UIStoryboardSegue. À l'intérieur de mon code a appelé une seconde fois par programmation. Donc, en appuyant sur UIButton provoqué la présentation de la vue spécifiée deux fois.

Questions connexes