---
title: UIImagePickerControllerDelegate
framework: uikit
role: symbol
role_heading: Protocol
path: uikit/uiimagepickercontrollerdelegate
---

# UIImagePickerControllerDelegate

A set of methods that your delegate object must implement to interact with the image picker interface.

## Declaration

```swift
@MainActor protocol UIImagePickerControllerDelegate : NSObjectProtocol
```

## Overview

Overview The methods of this protocol notify your delegate when the user either picks an image or movie, or cancels the picker operation. The delegate methods are responsible for dismissing the picker when the operation completes. To dismiss the picker, call the dismiss(animated:completion:) method of the parent controller responsible for displaying the UIImagePickerController object. To save a still image to the user’s Camera Roll album, call the UIImageWriteToSavedPhotosAlbum(_:_:_:_:) function from within the body of the imagePickerController(_:didFinishPickingMediaWithInfo:) method. To save a movie to the user’s Camera Roll album, instead call the UISaveVideoAtPathToSavedPhotosAlbum(_:_:_:_:) function. These functions, described in UIKit Functions, save the image or movie only; they don’t save metadata. To write additional metadata when saving an image to the Camera Roll, use the PHAssetChangeRequest class from the Photos framework. See the description for the mediaMetadata key.

## Topics

### Closing the picker

- [imagePickerController(_:didFinishPickingMediaWithInfo:)](uikit/uiimagepickercontrollerdelegate/imagepickercontroller(_:didfinishpickingmediawithinfo:).md)
- [imagePickerControllerDidCancel(_:)](uikit/uiimagepickercontrollerdelegate/imagepickercontrollerdidcancel(_:).md)

### Getting the editing information

- [UIImagePickerController.InfoKey](uikit/uiimagepickercontroller/infokey.md)

## Relationships

### Inherits From

- [NSObjectProtocol](objectivec/nsobjectprotocol.md)

## See Also

### Responding to interactions with the picker

- [delegate](uikit/uiimagepickercontroller/delegate.md)
