l'iPhone s'écraser lors de la présentation de modal-vue-contrôleur

J'essaie d'afficher une vue modal tout de suite après un autre point de vue a été présenté modal (le deuxième est un chargement de vue qui apparaît).

- (void)viewDidAppear:(BOOL)animated {
    [super viewDidAppear:animated];
    //Show load
    LoadViewController *loader = [[LoadViewController alloc] init];
    [self presentModalViewController: loader animated:NO];
    [loader release];
}

Mais quand je fais cela, je reçois un "Programme de signal reçu: "EXC_BAD_ACCESS"." erreur.

La trace de la pile est:

0  0x30b43234 in -[UIWindowController transitionViewDidComplete:fromView:toView:]
1  0x3095828e in -[UITransitionView notifyDidCompleteTransition:]
2  0x3091af0d in -[UIViewAnimationState sendDelegateAnimationDidStop:finished:]
3  0x3091ad7c in -[UIViewAnimationState animationDidStop:finished:]
4  0x0051e331 in run_animation_callbacks
5  0x0051e109 in CA::timer_callback
6  0x302454a0 in CFRunLoopRunSpecific
7  0x30244628 in CFRunLoopRunInMode
8  0x32044c31 in GSEventRunModal
9  0x32044cf6 in GSEventRun
10 0x309021ee in UIApplicationMain
11 0x00002154 in main at main.m:14

Des idées? Je suis totalement perplexe! Le chargement de la vue est vide, donc il n'y a absolument rien là-dedans qui est à l'origine de l'erreur. Est-il quelque chose à faire avec le lancement de 2 points de vue modal dans la même boucle d'événement ou quelque chose?

Merci,

Mike

Edit: Très étrange... j'ai modifié légèrement de sorte que le chargement de la vue s'affiche après un petit retard, et cela fonctionne très bien! Il semble être quelque chose dans le même événement en boucle!

- (void)viewDidAppear:(BOOL)animated {
    [super viewDidAppear:animated];
    //Show load
    [self performSelector:@selector(doit) withObject:nil afterDelay:0.1];
}

- (void)doit {
    [self presentModalViewController:loader animated:YES];  
}
  • Où en est la EXC_BAD_ACCESS en venir? - Vous nous donner une trace de la pile d'ici, mais je ne suis pas sûr que l'erreur se passe dans cette partie du code. Pouvez-vous modifier le post pour nous donner le log complet avec des traces de où tous les fils étaient?
  • Je ne sais pas d'où ça vient. C'est la seule trace que j'ai, il semblerait que le mauvais accès ne vient pas de mon code, donc c'est quelque chose interne accéder à quelque chose, donc je ne peux pas identifier la! J'ai assuré tout est conservé, du coup j'ai aucune idée de ce qui se passe!
  • Essayez de mettre loader dans l'autorelease pool. Je pense que le chargeur est en train de disparaître trop tôt, probablement parce que le point de vue actuel contrôleur doit sortir de la voie à la nouvelle vue et vue-contrôleur. D'autres idées: utiliser le débogueur et regarder chargeur. Si c'est ce qui est à l'origine du problème, vous allez découvrir de cette façon. Si pas, garder à fureter partout dans le débogueur et vous pourriez comprendre.
  • Ok je vais essayer. Comment puis-je regarder le chargeur avec le débogueur? En utilisant des points d'arrêt? Ou est-il une autre façon de suivre les choses qui d'autre? Serais intéressé de savoir si il y a d'autres façons de débogage!
  • Je pense que la raison pour la boucle, c'est que le nouveau-vue-contrôleur vous êtes le chargement a un point de vue ne semble méthode par défaut, et il a [super viewdidappear animées]; ce qui signifie qu'il sera de retour d'appel à votre vue principale du contrôleur de viewDidAppear encore une fois, comme ça il ira sur une boucle