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

# UIDocumentMenuViewController

A list of all the available document providers for a given file type and mode, in addition to custom menu items that you add.

```
@MainActor class UIDocumentMenuViewController
```

## Topics

### Creating a document menu

[`-  initWithDocumentTypes:inMode:`](/documentation/UIKit/UIDocumentMenuViewController/init(documentTypes:in:))

Initializes and returns a document menu to import or open the given file types.

[`-  initWithURL:inMode:`](/documentation/UIKit/UIDocumentMenuViewController/init(url:in:))

Initializes and returns a document menu to export or move the given document.

[`-  initWithCoder:`](/documentation/UIKit/UIDocumentMenuViewController/init(coder:))

Creates a document menu from data in an unarchiver.

### Getting the user-selected document picker

[`delegate`](/documentation/UIKit/UIDocumentMenuViewController/delegate)

The document menu’s delegate.

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

A set of methods that you must implement to track user interactions with a document menu view controller.

### Configuring a document menu

[`-  addOptionWithTitle:image:order:handler:`](/documentation/UIKit/UIDocumentMenuViewController/addOption(withTitle:image:order:handler:))

Adds a custom menu item to the list of document pickers.

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

The insertion point for custom menu items.

## Relationships

### Conforms To

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

### 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)