Iphone 如何将图像放入iPad上的UIImagePickerController

Iphone 如何将图像放入iPad上的UIImagePickerController,iphone,ios,objective-c,Iphone,Ios,Objective C,我的目标是让用户从UIwebView捕获屏幕快照,然后将图像加载到UIPopoverController中。然后,用户可以从UIPopoverController裁剪并保存图像 到目前为止,我可以将屏幕截图另存为UIImage。然后,我的UIPopoverController弹出,但没有保存的图像。这是因为myimagePicker sourceType=UIImagePickerControllerSourceTypePhotoLibrary我将用什么替换它 -(UIImage*)captur

我的目标是让用户从
UIwebView
捕获屏幕快照,然后将图像加载到
UIPopoverController
中。然后,用户可以从
UIPopoverController
裁剪并保存图像

到目前为止,我可以将屏幕截图另存为
UIImage
。然后,我的
UIPopoverController
弹出,但没有保存的图像。这是因为my
imagePicker sourceType=UIImagePickerControllerSourceTypePhotoLibrary我将用什么替换它

-(UIImage*)captureScreen:(UIView*) viewToCapture
{    
    UIGraphicsBeginImageContext(viewToCapture.bounds.size);
    [viewToCapture.layer renderInContext:UIGraphicsGetCurrentContext()];
    UIImage *viewImage = UIGraphicsGetImageFromCurrentImageContext();
    UIGraphicsEndImageContext();

    imageView.image = viewImage;

    [imageView setHidden:NO];

    // this removes current view ie photoLibary
    [self dismissViewControllerAnimated:YES completion:NULL];

    // this checks that a popover is not already in view
    if ([popoverController isPopoverVisible]) 
   {
        // if yes - remove
        [popoverController dismissPopoverAnimated:YES];

   } 
   else 
   {     
        // create an imagePicker

        UIImagePickerController *imagePicker = [[UIImagePickerController alloc] init];

        imagePicker.delegate = self;
        imagePicker.sourceType = UIImagePickerControllerSourceTypePhotoLibrary;

        imagePicker.allowsEditing = YES;


        // create an PopoverController
        popoverController = [[UIPopoverController alloc]
                             initWithContentViewController:imagePicker];



        popoverController.delegate = self;


        UIView *popView = [[UIView alloc]initWithFrame:CGRectMake(0, 0, 500, 500)];
        [self.view addSubview:popView];

        [popoverController presentPopoverFromRect:CGRectMake(100,200, 565, 545)
                                           inView:self.view
                         permittedArrowDirections:0
                                         animated:YES];
    }

    return viewImage;
}
添加此代码

UIImageWriteToSavedPhotosAlbum(图像,无,无,无)

像这样

-(UIImage*)captureScreen:(UIView*) viewToCapture{

        UIGraphicsBeginImageContext(viewToCapture.bounds.size);
        [viewToCapture.layer renderInContext:UIGraphicsGetCurrentContext()];
        UIImage *viewImage = UIGraphicsGetImageFromCurrentImageContext();
        UIGraphicsEndImageContext();

        imageView.image = viewImage;


            UIImageWriteToSavedPhotosAlbum(viewImage, nil, nil, nil);
  [self dismissViewControllerAnimated:YES completion:NULL];
    [self performSelector:@selector(call) withObject:nil afterDelay:.3];

        }

-(void)call
{
 if ([popoverController isPopoverVisible]) {

    // if yes - remove
    [popoverController dismissPopoverAnimated:YES];

} else {

    // create an imagePicker

    UIImagePickerController *imagePicker = [[UIImagePickerController alloc] init];

    imagePicker.delegate = self;
    imagePicker.sourceType = UIImagePickerControllerSourceTypePhotoLibrary;

    imagePicker.allowsEditing = YES;


    // create an PopoverController
    popoverController = [[UIPopoverController alloc]
                         initWithContentViewController:imagePicker];



    popoverController.delegate = self;


    UIView *popView = [[UIView alloc]initWithFrame:CGRectMake(0, 0, 500, 500)];
    [self.view addSubview:popView];




    [popoverController presentPopoverFromRect:CGRectMake(100,200, 565, 545)
                                       inView:self.view
                     permittedArrowDirections:0
                                     animated:YES];
}
希望它能帮助您添加此代码

UIImageWriteToSavedPhotosAlbum(图像,无,无,无)

像这样

-(UIImage*)captureScreen:(UIView*) viewToCapture{

        UIGraphicsBeginImageContext(viewToCapture.bounds.size);
        [viewToCapture.layer renderInContext:UIGraphicsGetCurrentContext()];
        UIImage *viewImage = UIGraphicsGetImageFromCurrentImageContext();
        UIGraphicsEndImageContext();

        imageView.image = viewImage;


            UIImageWriteToSavedPhotosAlbum(viewImage, nil, nil, nil);
  [self dismissViewControllerAnimated:YES completion:NULL];
    [self performSelector:@selector(call) withObject:nil afterDelay:.3];

        }

-(void)call
{
 if ([popoverController isPopoverVisible]) {

    // if yes - remove
    [popoverController dismissPopoverAnimated:YES];

} else {

    // create an imagePicker

    UIImagePickerController *imagePicker = [[UIImagePickerController alloc] init];

    imagePicker.delegate = self;
    imagePicker.sourceType = UIImagePickerControllerSourceTypePhotoLibrary;

    imagePicker.allowsEditing = YES;


    // create an PopoverController
    popoverController = [[UIPopoverController alloc]
                         initWithContentViewController:imagePicker];



    popoverController.delegate = self;


    UIView *popView = [[UIView alloc]initWithFrame:CGRectMake(0, 0, 500, 500)];
    [self.view addSubview:popView];




    [popoverController presentPopoverFromRect:CGRectMake(100,200, 565, 545)
                                       inView:self.view
                     permittedArrowDirections:0
                                     animated:YES];
}

希望它能帮助您使用以下代码将图像保存到相册中

UIImageWriteToSavedPhotosAlbum(imageToBeSaved, nil, nil, nil);

您可以参考了解有关该功能的更多信息。

使用以下代码将图像保存到相册中

UIImageWriteToSavedPhotosAlbum(imageToBeSaved, nil, nil, nil);

您可以参考以了解有关该功能的更多信息。

@pete很高兴我能帮助您!:)@皮特很高兴我能帮助你!:)哇!太好了。我无法在保存图像的同时加载PopoverController,但是调用方法和延迟非常有效。非常感谢!!太好了。我无法在保存图像的同时加载PopoverController,但是调用方法和延迟非常有效。非常感谢