<!--
{
  "availability" : [
    "iOS: 8.3.0 -",
    "iPadOS: 8.3.0 -",
    "macCatalyst: 13.1.0 -",
    "tvOS: -",
    "visionOS: 1.0.0 -"
  ],
  "documentType" : "symbol",
  "framework" : "UIKit",
  "identifier" : "/documentation/UIKit/UIAdaptivePresentationControllerDelegate/adaptivePresentationStyle(for:traitCollection:)",
  "metadataVersion" : "0.1.0",
  "role" : "Instance Method",
  "symbol" : {
    "kind" : "Instance Method",
    "modules" : [
      "UIKit"
    ],
    "preciseIdentifier" : "c:objc(pl)UIAdaptivePresentationControllerDelegate(im)adaptivePresentationStyleForPresentationController:traitCollection:"
  },
  "title" : "adaptivePresentationStyle(for:traitCollection:)"
}
-->

# adaptivePresentationStyle(for:traitCollection:)

Asks the delegate for the presentation style to use when the specified set of traits are active.

```
optional func adaptivePresentationStyle(for controller: UIPresentationController, traitCollection: UITraitCollection) -> UIModalPresentationStyle
```

## Parameters

`controller`

The presentation controller that is managing the size change. Use this object to retrieve the view controllers involved in the presentation.

`traitCollection`

The traits representing the target environment.

## Return Value

The new presentation style, which must be [`UIModalPresentationStyle.fullScreen`](/documentation/UIKit/UIModalPresentationStyle/fullScreen), [`UIModalPresentationStyle.overFullScreen`](/documentation/UIKit/UIModalPresentationStyle/overFullScreen), [`UIModalPresentationStyle.formSheet`](/documentation/UIKit/UIModalPresentationStyle/formSheet), or [`UIModalPresentationStyle.none`](/documentation/UIKit/UIModalPresentationStyle/none).

## Discussion

The presentation controller calls this method when the traits of the current environment are about to change. Your implementation of this method can return the preferred presentation style to use for the specified traits. If you do not return one of the allowed styles, the presentation controller uses its preferred default style.

If you do not implement this method in your delegate, UIKit calls the [`adaptivePresentationStyle(for:)`](/documentation/UIKit/UIAdaptivePresentationControllerDelegate/adaptivePresentationStyle(for:)) method instead.

---

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)