---
title: UIPrinterPickerController
framework: uikit
role: symbol
role_heading: Class
path: uikit/uiprinterpickercontroller
---

# UIPrinterPickerController

A view controller that displays the standard interface for selecting a printer.

## Declaration

```swift
@MainActor class UIPrinterPickerController
```

## Overview

Overview You can use a printer picker controller to display a list of printers to the user prior to printing a document, photo, or other content. Printer pickers display all pickers normally but you can filter out printers by assigning an appropriate delegate object to the picker before displaying it. A printer picker controller coordinates the presentation and dismissal of its interface with its associated delegate object. The delegate object is an object that you provide and that conforms to the UIPrinterPickerControllerDelegate protocol. When the user selects a printer, the picker also notifies the delegate of the selection. A printer picker controller isn’t a view controller, so you don’t present it the way you do other view controllers. You present the picker using one of the presentation methods of this class. Those methods work with the picker’s delegate object to determine the most appropriate way to present the picker. If the delegate implements the printerPickerControllerParentViewController(_:) method, the picker presents itself using the view controller returned by that method. Some presentation methods may present the picker using a popover instead. For more information about the picker delegate methods, see UIPrinterPickerControllerDelegate.

## Topics

### Creating a picker controller

- [init(initiallySelectedPrinter:)](uikit/uiprinterpickercontroller/init(initiallyselectedprinter:).md)

### Managing the printer picker interface

- [delegate](uikit/uiprinterpickercontroller/delegate.md)
- [UIPrinterPickerControllerDelegate](uikit/uiprinterpickercontrollerdelegate.md)

### Presenting and dismissing the picker

- [present(animated:completionHandler:)](uikit/uiprinterpickercontroller/present(animated:completionhandler:).md)
- [present(from:animated:completionHandler:)](uikit/uiprinterpickercontroller/present(from:animated:completionhandler:).md)
- [present(from:in:animated:completionHandler:)](uikit/uiprinterpickercontroller/present(from:in:animated:completionhandler:).md)
- [dismiss(animated:)](uikit/uiprinterpickercontroller/dismiss(animated:).md)

### Getting the selected printer

- [selectedPrinter](uikit/uiprinterpickercontroller/selectedprinter.md)

### Constants

- [UIPrinterPickerController.CompletionHandler](uikit/uiprinterpickercontroller/completionhandler.md)

## Relationships

### Inherits From

- [NSObject](objectivec/nsobject-swift.class.md)

### Conforms To

- [CVarArg](swift/cvararg.md)
- [CustomDebugStringConvertible](swift/customdebugstringconvertible.md)
- [CustomStringConvertible](swift/customstringconvertible.md)
- [Equatable](swift/equatable.md)
- [Hashable](swift/hashable.md)
- [NSObjectProtocol](objectivec/nsobjectprotocol.md)
- [Sendable](swift/sendable.md)

## See Also

### Print panels

- [UIPrintInteractionController](uikit/uiprintinteractioncontroller.md)
