5

I'm having a problem where I just want a simple solution to take a picture and then save it in my app. However so far all I can do is take the photo have it load in a UIImageView, however it does not save in the Camera Roll.

- (IBAction)takePhoto:(UIButton *)sender 
{
    UIImagePickerController *picker = [[UIImagePickerController alloc] init];
    picker.delegate = self;
    picker.allowsEditing = YES;
    picker.sourceType = UIImagePickerControllerSourceTypeCamera;

    [self presentViewController:picker animated:YES completion:NULL];
}  

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

    [picker dismissViewControllerAnimated:YES completion:NULL];
}

- (void)imagePickerControllerDidCancel:(UIImagePickerController *)picker 
{
    [picker dismissViewControllerAnimated:YES completion:NULL];
}

Any help regarding this would be greatly appreciated. Believe me, I really need it.

rmaddy
  • 314,917
  • 42
  • 532
  • 579
apss
  • 53
  • 1
  • 3
  • possible duplicate of [How can I save an image to the camera roll?](http://stackoverflow.com/questions/11131050/how-can-i-save-an-image-to-the-camera-roll) – klcjr89 Jul 14 '14 at 21:00

2 Answers2

13

You will want to do this:

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

    self.imageView.image = chosenImage;

    UIImageWriteToSavedPhotosAlbum(chosenImage, nil, nil, nil);

    [picker dismissViewControllerAnimated:YES completion:NULL];
}
klcjr89
  • 5,862
  • 10
  • 58
  • 91
1

Swift 4

func imagePickerController(_ picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [String : Any]) {

    if(info[UIImagePickerControllerMediaType] as! String == "public.image"){

        guard let curImage:UIImage = info[UIImagePickerControllerOriginalImage] as? UIImage else{

        return

        }

        UIImageWriteToSavedPhotosAlbum(curImage, nil, nil, nil) 
    }
}
Thomas Paul
  • 355
  • 5
  • 13