2010-10-07 4 views
0

J'ai créé un projet qui a différents viewcontrollers xib.En première vue, je sélectionne une image via le contrôleur de sélecteur et je l'affiche dans le secondviewcontroller.In secondview controller j'ai quelques boutons et j'ai donné quelques IBActions à them.Here commence mon problème que je suis affiche avec succès l'image secondviewcontorller mais quand je tape sur le bouton dans cette application viewcontroller est dissous et le débogueur montrant le message d'erreur programme a pris fin en raison d'une exception non interceptéeIBActions ne fonctionnent pas dans un autre viewcontroller

ici est le code:

Pour choisir l'image via la photo kercontroller en première vue

-(IBAction)btnChoosePicClicked { 
    if([UIImagePickerController   isSourceTypeAvailable:UIImagePickerControllerSourceTypePhotoLibrary]) 
    { 
     UIImagePickerController *picker=[[UIImagePickerController alloc] init]; 
     picker.delegate=self; 
     picker.sourceType=UIImagePickerControllerSourceTypePhotoLibrary; 
     [self presentModalViewController:picker animated:YES]; 
     [picker release]; 

    } 
    else 
    { 
     UIAlertView *alert =[[UIAlertView alloc]initWithTitle:@"Error accessing photo library" message:@"Device does not support a photo library" delegate:nil cancelButtonTitle:@"Drat!"     otherButtonTitles:nil]; 

     [alert show]; 
     [alert release]; 
    } 

} 

afficher dans la deuxième vue et l'attribution des actions .h fichier

@interface editScreen : UIViewController{ 
    IBOutlet UIButton *btnRotate; 
    IBOutlet UIButton *btnLibrary; 
    IBOutlet UIImageView *imgView; 
    int RotateAngle; 
} 
-(void)setImage:(UIImage *)img; 
-(IBAction)btnLibraryClicked; 
-(IBAction)RotateImage; 
@end 

fichier .m

@implementation editScreen 
-(void)setImage:(UIImage *)img 
{ 
    [imgView setImage:img]; 
    imgView.userInteractionEnabled = YES; 
} 
-(IBAction)RotateImage 
{ 
    CGAffineTransform transform = imgView.transform; 
    transform = CGAffineTransformRotate(transform, M_PI/2); 
    imgView.transform=transform; 

    RotateAngle+=90; 

    if(RotateAngle>=360) 
    { 
     RotateAngle-=360; 
    } 
    //imageview.transform = CGAffineTransformScale(imageview.transform, -1.0, 1.0); 
} 
-(IBAction)btnLibraryClicked { 


    if([UIImagePickerController     isSourceTypeAvailable:UIImagePickerControllerSourceTypePhotoLibrary]) 
    { 
     UIImagePickerController *picker=[[UIImagePickerController alloc] init]; 
     picker.delegate=self; 
     picker.sourceType=UIImagePickerControllerSourceTypePhotoLibrary; 
     [self presentModalViewController:picker animated:YES]; 
     [picker release]; 
     // NSFileHandle *fileHandle = [[NSFileHandle alloc]initWithFileDescript 
    } 
    else 
    { 
     UIAlertView *alert =[[UIAlertView alloc]initWithTitle:@"Error accessing photo library" message:@"Device does not support a photo library" delegate:nil cancelButtonTitle:@"Drat!" otherButtonTitles:nil]; 

     [alert show]; 
     [alert release]; 
    } 

} 

Je ne sais pas ce qui est erroné avec mon code s'il vous plaît aider moi.J'ai donné des connexions appropriées dans IB .. Merci à l'avance

+1

Vous devez modifier votre publication pour rendre le code plus lisible. Le code sera formaté lorsque vous ajoutez 3 ou 4 espaces avant chaque ligne. –

Répondre

0

Pour certaines classes UIKit, son délégué dispose de quelques méthodes qui doivent être implémentées. Par exemple, UIImagePickerViewControllerDelegate doit mettre en œuvre des méthodes suivantes:

  • - imagePickerController: didFinishPickingMediaWithInfo:
  • - imagePickerControllerDidCancel:

Pour vos codes ci-dessus, je ne sais pas si ces méthodes sont mis en œuvre ou non. J'espère que ces informations peuvent vous aider.

Questions connexes