<!--
{
  "availability" : [
    "iOS: 8.0.0 - 14.0.0",
    "iPadOS: 8.0.0 - 14.0.0",
    "macCatalyst: 13.1.0 - 14.0.0",
    "visionOS: 1.0.0 - 1.0.0"
  ],
  "documentType" : "symbol",
  "framework" : "UIKit",
  "identifier" : "/documentation/UIKit/UIDocumentPickerExtensionViewController",
  "metadataVersion" : "0.1.0",
  "role" : "Class",
  "symbol" : {
    "kind" : "Class",
    "modules" : [
      "UIKit"
    ],
    "preciseIdentifier" : "c:objc(cs)UIDocumentPickerExtensionViewController"
  },
  "title" : "UIDocumentPickerExtensionViewController"
}
-->

# UIDocumentPickerExtensionViewController

The principal class for the Document Picker View Controller extension.

```
@MainActor class UIDocumentPickerExtensionViewController
```

## Overview

The Document Picker View Controller extension can perform *import* and *export* operations on its own. If you want to support *open* and *move* operations, you must pair it with a File Provider extension.

When creating a Document Picker extension, you must subclass [`UIDocumentPickerExtensionViewController`](/documentation/UIKit/UIDocumentPickerExtensionViewController) to provide the document picker’s user interface. Your subclass presents a list of available documents and destinations to the user. When the user makes a selection, you trigger the file transfer and pass the selected URL back to the host app.

For more information on creating Document Picker extensions, see [Document Provider](https://developer.apple.com/library/archive/documentation/General/Conceptual/ExtensibilityPG/FileProvider.html#//apple_ref/doc/uid/TP40014214-CH18).

## Topics

### Managing the user interface

[`-  dismissGrantingAccessToURL:`](/documentation/UIKit/UIDocumentPickerExtensionViewController/dismissGrantingAccess(to:))

Dismisses the document picker.

[`documentPickerMode`](/documentation/UIKit/UIDocumentPickerExtensionViewController/documentPickerMode)

The document picker’s file-transfer operation. (read-only)

[`documentStorageURL`](/documentation/UIKit/UIDocumentPickerExtensionViewController/documentStorageURL)

The root URL for documents provided by the corresponding File Provider extension. (read-only)

[`originalURL`](/documentation/UIKit/UIDocumentPickerExtensionViewController/originalURL)

The URL of the file to be exported. (read-only)

[`-  prepareForPresentationInMode:`](/documentation/UIKit/UIDocumentPickerExtensionViewController/prepareForPresentation(in:))

Performs any custom configuration of the document picker view controller.

[`providerIdentifier`](/documentation/UIKit/UIDocumentPickerExtensionViewController/providerIdentifier)

An identifier shared by this Document Picker extension and its corresponding File Provider extension. (read-only)

[`validTypes`](/documentation/UIKit/UIDocumentPickerExtensionViewController/validTypes)

An array of valid uniform type identifiers.

## Relationships

### Conforms To

[`CVarArg`](/documentation/Swift/CVarArg)

[`NSCoding`](/documentation/Foundation/NSCoding)

[`UITraitChangeObservable-67e94`](/documentation/UIKit/UITraitChangeObservable-67e94)

[`UIStateRestoring`](/documentation/UIKit/UIStateRestoring)

[`NSTouchBarProvider`](/documentation/AppKit/NSTouchBarProvider)

[`UIContentContainer`](/documentation/UIKit/UIContentContainer)

[`UIPasteConfigurationSupporting`](/documentation/UIKit/UIPasteConfigurationSupporting)

[`UIActivityItemsConfigurationProviding`](/documentation/UIKit/UIActivityItemsConfigurationProviding)

[`Sendable`](/documentation/Swift/Sendable)

[`CustomDebugStringConvertible`](/documentation/Swift/CustomDebugStringConvertible)

[`UIFocusEnvironment`](/documentation/UIKit/UIFocusEnvironment)

[`UITraitEnvironment`](/documentation/UIKit/UITraitEnvironment)

[`NSExtensionRequestHandling`](/documentation/Foundation/NSExtensionRequestHandling)

[`Hashable`](/documentation/Swift/Hashable)

[`SendableMetatype`](/documentation/Swift/SendableMetatype)

[`UIResponderStandardEditActions`](/documentation/UIKit/UIResponderStandardEditActions)

[`UIUserActivityRestoring`](/documentation/UIKit/UIUserActivityRestoring)

[`UIAppearanceContainer`](/documentation/UIKit/UIAppearanceContainer)

[`NSObjectProtocol`](/documentation/ObjectiveC/NSObjectProtocol)

[`CustomStringConvertible`](/documentation/Swift/CustomStringConvertible)

[`Equatable`](/documentation/Swift/Equatable)

### Inherits From

[`UIViewController`](/documentation/UIKit/UIViewController)

---

Copyright &copy; 2026 Apple Inc. All rights reserved. | [Terms of Use](https://www.apple.com/legal/internet-services/terms/site.html) | [Privacy Policy](https://www.apple.com/privacy/privacy-policy)