Poussant View Controller plus d'une fois n'est pas pris en charge?
J'obtiens l'erreur suivante lorsque j'essaie de changer de vue comme ceci:
-(void)changeView1ToView4 {
[self.navigationController1 pushViewController:view4 animated:YES];
}
Cela ne se produit pas lors de la première application des charges et de l'utilisateur accède directement à ce point de vue. Ce blocage ne se produit que lorsque je vais à un autre de mes points de vue, revenir au menu principal, puis essayer d'aller à ce point de vue.
Aussi, si vous n'étiez pas sûr que déjà, je suis en utilisant un UINavigationController. Aussi ce code dans l'application délégué et je l'appelle à partir d'une vue contrôleur qui a une vue parent donc je suis en utilisant un .référence de l'appeler comme ceci:
[self.reference changeView1ToView4];
Est-il réellement possible de résoudre ce problème?
Merci!
Edit1:
[self.navigationController1 pushViewController:view4 animated:NO];
[self.navigationController1 pushViewController:view4 animated:YES];
I tried that and got this crash message in the console:
Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: 'Pushing the same view controller instance more than once is not supported (<View2: 0x18d540>)'
OriginalL'auteur SimplyKiwi | 2011-09-11
Vous devez vous connecter pour publier un commentaire.
En appuyant sur 2 des vues sur la pile, essayez d'appeler:
et
Si vous essayez d'en pousser plus d'un point de vue de l'animation: le champ est défini sur OUI sur les deux, alors vous confondez la pile. Seulement animer un point de vue à la fois.
Oui. Mettre la vue contrôleur qui sera poussé à la première (évidemment, la non-animé) jusqu'en haut, puis mettre de l'animation sur le fond. La pile d'appel de la vue-contrôleur sur le dessus, puis la vue du contrôleur sur le fond et le fond doit être la vue que vous voyez. Dites-moi si elle ne l'est pas.
Vérifier Edit1 dans mon post original
AH! Je pensais que vous étiez en essayant de repousser les 2 vues DIFFÉRENTES à la fois. Pourquoi auriez-vous besoin pour pousser vue deux fois? Il suffit de pousser la vue une fois par la suppression de l'une de ces méthodes. Votre application devrait fonctionner parfaitement.
tu veux dire par juste en utilisant l'un de ces lignes? C'est ce que j'ai fait à l'origine et il est à l'origine de ce crash.
OriginalL'auteur CodaFi
juste un avis, si vous appelez setViewControllers:animation: il n'y a pas besoin d'appeler pushViewController: par la suite, sinon vous obtiendrez le "Poussant le même point de vue, contrôleur de l'instance, plus d'une fois n'est pas pris en charge" crash.
OriginalL'auteur Cole
OriginalL'auteur Amr Angry
Vérifier cette condition avant de pousser
OriginalL'auteur Karen Hovhannisyan