2013-10-25 10 views
5

Sto provando a premere un controller di visualizzazione (per modifiche extra) da UIImagePickerController dopo che l'utente ha selezionato un'immagine.
Viene spinto con successo. Ma quando viene eseguito lo schiocco di quel controller della vista e l'utente torna alla schermata di modifica, la schermata di modifica non è più intercambiabile. Qualcuno sa qual è il problema.UIImagePickerController lancia bug di viewcontroller con allowEditing

-(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]; 
     } 

risposta

1

provare questo funziona nella mia domanda:

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]; 
     } 

può essere che vi aiuterà.

+0

Quello che voglio è quando l'utente preme annulla, tornerà a foto/schermo della fotocamera. Nel tuo metodo, il selettore è già stato rimosso. Quindi questo non è quello che voglio. – wjheng

Problemi correlati