2010-07-06 9 views
0

J'utilise un UINavigationController dans mon application. dans la première vue J'affiche des informations et j'ai un bouton pour charger une image de la caméra. Cela fonctionne bien jusqu'à présent. Lorsque l'image a été chargée, je veux afficher l'image dans un UIImageView dans une seconde vue. Par conséquent, j'utilise le code suivant.UINavigationController EXC_BAD

MyAppDelegate *delegate = (MyAppDelegate *)[[UIApplication sharedApplication] delegate]; 
CorrectedImageController *imageController = [[CorrectedImageController alloc] initWithNibName:@"CorrectedImageView" bundle:nil]; 
self.correctedImageViewController = imageController; 
[imageController release];  
[delegate.navController pushViewController:imageController animated:YES]; 

La deuxième vue est chargée et l'image est affichée. Mais j'obtiens un message EXC_BAD_ACCESS dans la console du débogueur et mon application bloque l'interface utilisateur.

Dans la deuxième vue, l'image est chargée comme suit:

- (void)viewDidLoad { 
    MyAppDelegate *delegate = (MyAppDelegate *)[[UIApplication sharedApplication] delegate]; 
    [imageView setImage:delegate.correctedImage]; 
    [super viewDidLoad]; 
} 

Quelqu'un peut-il me dire ce que je fait de mal? Mon fichier nib ressemble:

-File's Owner (Corrected Image Controller) 
-First Responder (UIResponder) 
-View (UIView) 
--ImageView (UIImageView) 

propriété vue propriétaire de Le fichier est connecté à la vue. Et la propriété imageView est connectée à ImageView.

Quelqu'un peut-il me dire, ce que j'ai mal fait?

BR, Martin

Répondre

1

Je crois que c'est parce que vous appelez la libération imageController (ligne 5), puis d'essayer le pushModalView l'objet que vous venez de sortir (ligne 6). Si votre autoCorrectedImageViewController conserve l'imageController, vous pouvez appuyer sur le fichier self.correctedImageViewController ou libérer l'imageController après l'envoi.