开发者

How to make UIImagePickerController works under switch case UIActionSheet

开发者 https://www.devze.com 2023-02-02 23:30 出处:网络
-(void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info
-(void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info
{
 UIImage *tempImage = [info objectForKey:UIImagePickerControllerOriginalImage];
 imgview.image = tempImage;
 [self dismissModalViewControllerAnimated:YES];
 [picker release];
}

-(void)imagePickerControllerDidCancel开发者_开发百科:(UIImagePickerController *)picker
{
 [self dismissModalViewControllerAnimated:YES];
 [picker release];
}


-(IBAction) calllib
{
 img1 = [[UIImagePickerController alloc] init];
 img1.delegate = self;
 img1.sourceType = UIImagePickerControllerSourceTypePhotoLibrary;
 [self presentModalViewController:img1 animated:YES];

}

all the codes above works well for taking out photos from the photo library.
problem is that when i tried to use it under the UIActionSheet it does not work.
i just copy the lines of codes from the -(IBAction) calllib as follow.


- (void)actionSheet:(UIActionSheet *)actionSheet clickedButtonAtIndex:(NSInteger)buttonIndex
{
 UIImage *detectface = [Utilities detectFace:imgview.image];
 UIImage *grayscale = [Utilities grayscaleImage:imgview.image];
 UIImage *avatars = [Utilities avatars:imgview.image];

 img1 = [[UIImagePickerController alloc] init];
 img1.delegate = self;
 img1.sourceType = UIImagePickerControllerSourceTypePhotoLibrary;

 switch (buttonIndex)
 {
  case 0:
   [self presentModalViewController:img1 animated:YES];
   imgview.image = detectface;
   break;
  case 1:
   [self presentModalViewController:img1 animated:YES];
   imgview.image = grayscale;
   break;
  case 2:
   [self presentModalViewController:img1 animated:YES];
   imgview.image = avatars;
   break;

  default:
   break;
 }

}

it does not work. can somebody help me to figure out what is the problem?

the switch case works perfectly without the [self presentModalViewController:img1 animated:YES]; ...

thanks


 img1 = [[UIImagePickerController alloc] init];
 img1.delegate = self;
 img1.sourceType = UIImagePickerControllerSourceTypePhotoLibrary;

 switch () {
   case 0:
    [self presentModalViewController:img1 animation:YES];
 }

 – (void)imagePickerController:didFinishPickingMediaWithInfo:(NSDictionary *)dict {
    UIImage *image = [dict objectForKey:SOME_KEY_HERE];
    imageView.image = [Utilities detectFace:image];

 }

you need to call the detect face after you get the image, which means in the delegate method returned from UIImagePickerController

0

精彩评论

暂无评论...
验证码 换一张
取 消