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

# UIPopoverPresentationController

An object that manages the display of content in a popover.

```
@MainActor class UIPopoverPresentationController
```

## Overview

From the time a popover is presented until the time it’s dismissed, UIKit uses an instance of this class to manage the presentation behavior. You use instances of this class as-is to configure aspects of the popover appearance and behavior for view controllers whose presentation style is set to [`UIModalPresentationStyle.popover`](/documentation/UIKit/UIModalPresentationStyle/popover).

In nearly all cases, you use this class as-is and don’t create instances of it directly. UIKit creates an instance of this class automatically when you present a view controller using the [`UIModalPresentationStyle.popover`](/documentation/UIKit/UIModalPresentationStyle/popover) style. You can retrieve that instance from the presented view controller’s [`popoverPresentationController`](/documentation/UIKit/UIViewController/popoverPresentationController) property and use it to configure the popover behavior.

If you don’t want to configure a popover immediately after presenting a view controller, you can use a delegate object to configure the popover instead. During the presentation process, the popover presentation controller calls various methods of its delegate—an object that conforms to the [`UIPopoverPresentationControllerDelegate`](/documentation/UIKit/UIPopoverPresentationControllerDelegate) protocol—to ask for information and to inform it about the state of the presentation. Your delegate object can use those methods to configure the popover and adjust its behavior as needed. For information about how to implement a delegate for a popover presentation controller, see [`UIPopoverPresentationControllerDelegate`](/documentation/UIKit/UIPopoverPresentationControllerDelegate).

For information about how to display a view controller using a popover presentation controller, see [Displaying transient content in a popover](/documentation/UIKit/displaying-transient-content-in-a-popover).

## Topics

### Customizing the popover behavior

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

The delegate that handles popover-related messages.

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

The interface for a popover presentation delegate, which lets you customize the behavior of a popover-based presentation.

### Configuring the popover appearance

[`popoverLayoutMargins`](/documentation/UIKit/UIPopoverPresentationController/popoverLayoutMargins)

The margins that define the portion of the screen in which it is permissible to display the popover.

[`backgroundColor`](/documentation/UIKit/UIPopoverPresentationController/backgroundColor)

The color of the popover’s backdrop view.

[`passthroughViews`](/documentation/UIKit/UIPopoverPresentationController/passthroughViews)

An array of views that the user can interact with while the popover is visible.

[`popoverBackgroundViewClass`](/documentation/UIKit/UIPopoverPresentationController/popoverBackgroundViewClass)

The class to use for displaying the popover background content.

[`canOverlapSourceViewRect`](/documentation/UIKit/UIPopoverPresentationController/canOverlapSourceViewRect)

A Boolean value indicating whether the popover can overlap its view rectangle.

### Specifying the popover’s anchor point

[`sourceItem`](/documentation/UIKit/UIPopoverPresentationController/sourceItem)

The item on which to anchor the popover.

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

A type that can be an anchor for a popover presentation controller.

[`sourceView`](/documentation/UIKit/UIPopoverPresentationController/sourceView)

The view containing the anchor rectangle for the popover.

[`sourceRect`](/documentation/UIKit/UIPopoverPresentationController/sourceRect)

The area in the source view in which you anchor the popover.

[`barButtonItem`](/documentation/UIKit/UIPopoverPresentationController/barButtonItem)

The bar button item on which to anchor the popover.

### Configuring the popover arrows

[`permittedArrowDirections`](/documentation/UIKit/UIPopoverPresentationController/permittedArrowDirections)

The arrow directions that you allow for the popover.

[`arrowDirection`](/documentation/UIKit/UIPopoverPresentationController/arrowDirection)

The arrow direction in use by the popover.

### Displaying the popover as a sheet

[`adaptiveSheetPresentationController`](/documentation/UIKit/UIPopoverPresentationController/adaptiveSheetPresentationController)

The sheet presentation controller the popover adapts to in compact size classes.



---

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)