2012-05-01 4 views
2

J'ai chargé un nouveau contrôleur de vue avec succès cette IBAction qui est déclenchée quand un bouton est cliqué. Cependant, ma fonction de retour à l'ancienne vue de NewViewController.m ne se construit pas. Pourquoi?Comment se fait-il que je ne puisse pas fermer le contrôleur de vue que j'ai chargé?

- (IBAction)goBackToOldView:(id)sender 
{ 
    [self dismissWithClickedButtonIndex:0 animated:YES]; 
} 

L'erreur de compilation que je reçois est "Aucune interface visible déclare dismissWithClickedButtonIndex: animation:".


Mise à jour:

LLDB sorties maintenant

"2012-04-30 21:31:56.530 Project32[10105:fb03] -[UIViewController goBackToOldView:]: unrecognized selector sent to instance 0x6c57f20 
2012-04-30 21:31:56.531 Project32[10105:fb03] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[UIViewController goBackToOldView:]: unrecognized selector sent to instance 0x6c57f20' 
*** First throw call stack: 
(0x1649052 0x1bfdd0a 0x164aced 0x15aff00 0x15afce2 0x164aec9 0x2d05c2 0x50bd54 0x164aec9 0x2d05c2 0x2d055a 0x375b76 0x37603f 0x3752fe 0x2f5a30 0x2f5c56 0x2dc384 0x2cfaa9 0x2536fa9 0x161d1c5 0x1582022 0x158090a 0x157fdb4 0x157fccb 0x2535879 0x253593e 0x2cda9b 0x217d 0x20e5) 
terminate called throwing an exception(lldb)" 

Fait intéressant, je mis en œuvre goBackToOldView dans NewViewController:

- (IBAction)goBackToOldView:(id)sender 
{ 
    [self dismissModalViewControllerAnimated:YES]; 
} 
+0

Vérifiez si vous ne l'avez au bon endroit, commenter l'auto .. dismissmodal partie , et mettre un NSLog (@ "Bouton poussé"); Il vous donnera probablement la même erreur ce qui signifie que le bouton que vous pressez n'est probablement pas connecté à l'action correcte, explorez-le dans le constructeur de l'interface, le dernier onglet de l'inspecteur montre ses connexions. Assurez-vous qu'il pointe vers le contrôleur qui a ce newviewcontroler.m mis en œuvre – Pochi

+0

Merci, vous avez raison! Commentant rejeter ... et le remplacer par «NSLog (@" retourner! ");' Échoue de même. C'est vraiment bizarre. J'ai juste traîné la ligne de mon fichier Nib et sélectionné goBack. Bizarre ... –

+0

Hmm, avez-vous des conseils de débogage? Le dernier onglet de l'inspecteur montre la bonne fonction, je crois. –

Répondre

2

Modifier votre code à la suivante et il devrait rejeter correctement.

-(IBAction)changeToAnotherView:(id)sender 
{ 
    if (self.newController == nil) 
    { 
     newController = [[UIViewController alloc] initWithNibName:@"NewViewController" bundle:[NSBundle mainBundle]]; 
    } 
    quizController.modalTransitionStyle = UIModalTransitionStyleFlipHorizontal; 
    [self presentViewController:newController animated:YES]; 
} 

- (IBAction)goBackToOldView:(id)sender 
{ 
    [self dismissModalViewControllerAnimated:YES]; 
} 

Espérons que cela aide!

+0

Merci, mais mon appli se bloque lorsque cette IBAction est déclenchée. Est-ce que tu sais pourquoi? –

+0

@BillyGoswell Vous avez une erreur? –

+0

Je reçois un SIGABRT dans ma fonction principale. –

3

Parce que ce n'est pas la bonne fonction, il devrait être.

[self dismissViewControllerAnimated:YES completion:Nil]; 

(Vous pouvez remplacer le nul sur completition pour un bloc pour effectuer quelque chose après que le contrôleur a été rejeté.)

+0

Merci, mais avec - '(IBAction) goBack: (id) expéditeur { [self dismissViewControllerAnimated: YES achèvement: Nil]; } ', mon application se bloque lorsque l'IBAction est déclenchée. Savez-vous peut-être pourquoi? –

+0

Quelle est l'erreur que vous obtenez? écrivez-le exactement comme vous l'avez. – Pochi

+0

Merci, je reçois "Thread 1: signal SIGABRT" au sein de ma fonction principale. –

Questions connexes