Reputation: 3050
My aim is for the user to capture a screen shot from a UIwebView
and then load the image into a UIPopoverController
. From the UIPopoverController
the user can then crop and save the image.
So far I can capture the screen shot a save as a UIImage
. Then, my UIPopoverController
pops up but without the saved image. This is because my imagePicker sourceType = UIImagePickerControllerSourceTypePhotoLibrary;
What would I replace this with???
-(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;
}
Upvotes: 0
Views: 380
Reputation: 3015
add this code
UIImageWriteToSavedPhotosAlbum(image, nil, nil, nil)
like this
-(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];
}
Hope it help You
Upvotes: 1
Reputation: 2919
Make use of the following code to save the image into the photo album.
UIImageWriteToSavedPhotosAlbum(imageToBeSaved, nil, nil, nil);
you can refer the documentation to know more about that function.
Upvotes: 2