2010-11-30 4 views
2

Je souhaite que mon contrôleur de vue vérifie s'il existe une image sur un autre contrôleur de vue lorsque je clique sur un bouton. Mais à partir de maintenant, même s'il y a une image, le simulateur n'exécute pas la boucle.Interagir avec un contrôleur de vue depuis un autre contrôleur de vue

code:

- (IBAction)buttonClicked:(id)sender { 

    iPhotoViewController *photo = [[iPhotoViewController alloc] initWithNibName:@"iPhotoViewController" bundle:nil] ; 


    if (photo.mainView.image) 
    { 
     but = (UIButton *) sender; 
     self.selectedImage = [_images objectAtIndex:but.tag]; 

     iPhoto2AppDelegate *delegate = [[UIApplication sharedApplication] delegate]; 
     [delegate.navController popViewControllerAnimated:YES]; 

     [photo release]; 
    } 

Merci, Praveen

Répondre

0

Avez-vous défini les deux

@property(nonatomic, retain) UIImage * image; // (or UIImageView *) 

dans votre .h et

@synthesize image; 

dans votre .m?

1

Vous créez une nouvelle instance de iPhotoViewController, ce qui signifie que l'image que vous souhaitez utiliser doit être disponible dans le fichier nib. Et étant disponible dans le fichier nib signifie qu'il est disponible dans votre projet afin de créer un nouveau iPhotoViewController juste pour voir si cette image est là semble un peu étrange.

Y a-t-il déjà une instance de ce iPhotoViewController quelque part où vous avez chargé une image? Si c'est le cas, vous devez vérifier l'instance. Mais peut-être que vous testez des choses et avez défini une image dans la plume et que vous voulez juste vous assurer que cela fonctionne. Dans ce cas, la raison photo.mainView.image n'est pas définie parce que vous avez seulement créé le contrôleur de vue mais que la vue n'a pas encore été chargée et configurée à partir de la pointe. Pour simuler cela, vous devez accéder à la propriété view du contrôleur avant de vérifier si l'image est définie.

iPhotoViewController *photo = [[iPhotoViewController alloc] initWithNibName:@"iPhotoViewController" bundle:nil] ; 

[photo view]; 
if (photo.mainView.image) { 
// continue as before 
Questions connexes