<!--
{
  "availability" : [
    "iOS: 8.0.0 -",
    "iPadOS: 8.0.0 -",
    "macCatalyst: 13.1.0 -",
    "visionOS: 1.0.0 -"
  ],
  "documentType" : "symbol",
  "framework" : "UIKit",
  "identifier" : "/documentation/UIKit/UIPrinterPickerController/present(from:animated:completionHandler:)",
  "metadataVersion" : "0.1.0",
  "role" : "Instance Method",
  "symbol" : {
    "kind" : "Instance Method",
    "modules" : [
      "UIKit"
    ],
    "preciseIdentifier" : "c:objc(cs)UIPrinterPickerController(im)presentFromBarButtonItem:animated:completionHandler:"
  },
  "title" : "present(from:animated:completionHandler:)"
}
-->

# present(from:animated:completionHandler:)

Presents the picker in a popover that anchors to the specified bar button item.

```
func present(from item: UIBarButtonItem, animated: Bool, completionHandler completion: UIPrinterPickerController.CompletionHandler? = nil) -> Bool
```

## Parameters

`item`

The bar button item to use as the anchor for the popover.

`animated`

<doc://com.apple.documentation/documentation/Swift/true> to animate the display of the picker or <doc://com.apple.documentation/documentation/Swift/false> to display it without animations.

`completion`

A block to execute when the picker is dismissed. Use this block to receive information about the selected printer or information about any errors that occurred.

## Return Value

<doc://com.apple.documentation/documentation/Swift/true> if the picker was displayed or <doc://com.apple.documentation/documentation/Swift/false> if the picker was already visible.

## Discussion

This method presents the picker from a popover or from the view controller you specify using your delegate object. If you provide a delegate object and that object implements the [`printerPickerControllerParentViewController(_:)`](/documentation/UIKit/UIPrinterPickerControllerDelegate/printerPickerControllerParentViewController(_:)) method, UIKit presents the picker using the view controller you specify. If you do not provide a delegate, or your delegate object does not implement the [`printerPickerControllerParentViewController(_:)`](/documentation/UIKit/UIPrinterPickerControllerDelegate/printerPickerControllerParentViewController(_:)) method, UIKit presents the picker using a popover attached the bar button you specified in the `item` parameter.

After presenting the picker, the picker interface runs until the user or your app dismisses it. The picker interface provides ways for the user to cancel printing directly, all of which dismiss the picker. You can also dismiss the printer picker programmatically by calling the [`dismiss(animated:)`](/documentation/UIKit/UIPrinterPickerController/dismiss(animated:)) method.

Calling this method while the picker is currently displayed in a popover dismisses the popover.

---

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)