2013-10-25 6 views
5

Ich versuche, einen View-Controller (für zusätzliche Bearbeitung) von UIImagePickerController schieben, nachdem Benutzer ein Bild ausgewählt hat.
Es wurde erfolgreich geschoben. Wenn jedoch dieser Ansichts-Controller aufgerufen wird und der Benutzer zum Bearbeitungsbildschirm zurückkehrt, ist der Bearbeitungsbildschirm nicht mehr interaktiv. Weiß jemand was das Problem ist.UIImagePickerController push viewcontroller Bug mit losesEditing

-(void)didTapBtn:(id)sender 
     { 
      self.picker = [[UIImagePickerController alloc] init]; 
      self.picker.sourceType = UIImagePickerControllerSourceTypePhotoLibrary; 
      self.picker.delegate = self; 
      self.picker.allowsEditing = YES; 

      [self presentViewController:self.picker animated:YES completion:nil]; 
     } 

     -(void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info 
     { 
      UIImage *image = [info objectForKey:UIImagePickerControllerEditedImage]; 

      if (image == nil) { 
       image = [info objectForKey:UIImagePickerControllerOriginalImage]; 
      } 

      if (image == nil) { 
       return; 
      } 



      self.test = [[BTTestViewController alloc] init]; 
      self.test.delegate = self; 

      [self.picker pushViewController:self.test animated:YES]; 
     } 

//Called by BTTestViewController 
     -(void)didCancel 
     { 
      [self.picker popViewControllerAnimated:YES]; 
     } 

Antwort

1

versuchen, dieses man es in meiner Anwendung arbeiten:

UIImagePickerController *imagePicker;//put it in .h file 

put it in .m file 
     imagePicker = [[UIImagePickerController alloc]init]; 
     imagePicker.delegate = self; 

     if([UIImagePickerController isSourceTypeAvailable:UIImagePickerControllerSourceTypeCamera]) 
     { 
      imagePicker.sourceType = UIImagePickerControllerSourceTypeCamera; 
      imagePicker.allowsEditing = YES; 
       [self presentViewController:imagePicker animated:YES completion:nil]; 
     } 
     else 
     { 
       UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"STEP-BY-STEP-STORY!" message: @"Camera is not available" delegate:nil cancelButtonTitle:@"OK" otherButtonTitles:nil, nil]; 
       [alert show]; 

     } 

    - (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info 
     { 
      UIImage *pickedImage = [info objectForKey:UIImagePickerControllerEditedImage]; 
      imageData.image =[self resizeImage:imageData.image width:200 height:200]; 
      [picker dismissViewControllerAnimated:YES completion:nil]; 

      iphone_filtersViewController *nav=[[iphone_filtersViewController alloc]initWithNibName:@"iphone_filtersViewController" bundle:nil]; 
      [self.navigationController pushViewController:nav animated:YES]; 

     } 
     - (void)imagePickerControllerDidCancel:(UIImagePickerController *)picker 
     { 
     // release Picker 
     [picker dismissViewControllerAnimated:YES completion:nil]; 
     } 

    // iphone_filtersViewController method 
     -(IBAction)backButton 
     { 
      [self.navigationController popViewControllerAnimated:YES]; 
     } 

kann es helfen.

+0

Was ich will ist, wenn der Benutzer Abbrechen drücken, wird es zurück zu Fotos/Kamera-Bildschirm gehen. In Ihrer Methode ist der Picker bereits entlassen. Also das ist nicht was ich will. – wjheng

Verwandte Themen