Title: Theory / Important / CS / Programming / Objective-C / Library / UIKit / Controller / Presentation
On every note of this deck, unless a note says otherwise:
Language: Objective-C
Language: Objective-C
Context: iOS

Name: A segue
Definition: a visual representation of a transition from one view controller to another.
Page: https://developer.apple.com/documentation/uikit/view_controllers/showing_and_hiding_view_controllers?language=objc
Context: iOS

Typ: UISheetPresentationController
Meaning: A presentation controller that manages the appearance and behavior of a sheet.
Page: https://developer.apple.com/documentation/uikit/uisheetpresentationcontroller?language=objc
Language: Objective-C
Context: iOS
Subtype of: UIPresentationController

Variable: sheetPresentationController.detents
Meaning: The array of heights where a sheet can rest.
Page: https://developer.apple.com/documentation/uikit/uisheetpresentationcontroller?language=objc
Context: iOS
Variables: UISheetPresentationController sheetPresentationController
Initialization: {largeDetent}
Assuming: Non empty

Variable: sheetPresentationController.selectedDetentIdentifier
Meaning: The identifier of the most recently selected detent.
Page: https://developer.apple.com/documentation/uikit/uisheetpresentationcontroller?language=objc
Context: iOS
Variables: UISheetPresentationController sheetPresentationController

Variable: sheetPresentationController.delegate
Meaning: The delegate of the sheet presentation controller.
Page: https://developer.apple.com/documentation/uikit/uisheetpresentationcontroller?language=objc
Context: iOS
Variables: UISheetPresentationController sheetPresentationController

Variable: sheetPresentationController.largestUndimmedDetentIdentifier
Meaning: The delegate of the sheet presentation controller.
Page: https://developer.apple.com/documentation/uikit/uisheetpresentationcontroller?language=objc
Context: iOS
Typ: UISheetPresentationControllerDetentIdentifier
Variables: UISheetPresentationController sheetPresentationController
Initialization: nol
Extra: Set this property to only add the dimming view at detents larger than the detent you specify.

Variable: sheetPresentationController.prefersScrollingExpandsWhenScrolledToEdge
Meaning: whether scrolling expands the sheet to a larger detent.
Page: https://developer.apple.com/documentation/uikit/uisheetpresentationcontroller?language=objc
Context: iOS
Variables: UISheetPresentationController sheetPresentationController
Initialization: YES

Variable: sheetPresentationController.preffersGrabberVisible
Meaning: whether the sheet shows a grabber at the top.
Page: https://developer.apple.com/documentation/uikit/uisheetpresentationcontroller?language=objc
Context: iOS
Variables: UISheetPresentationController sheetPresentationController
Initialization: NO

Variable: sheetPresentationController.prefersEdgeAttachedInCompactHeight
Meaning: whether the sheet attaches to the bottom edge of the screen in a compact-height size class.
Page: https://developer.apple.com/documentation/uikit/uisheetpresentationcontroller?language=objc
Context: iOS
Variables: UISheetPresentationController sheetPresentationController
Initialization: NO

Variable: sheetPresentationController.widthFollowsPreferredContentSizeWhenEdgeAttached
Meaning: whether the sheet's width matches its view controller's preferred content size.
Page: https://developer.apple.com/documentation/uikit/uisheetpresentationcontroller?language=objc
Context: iOS
Variables: UISheetPresentationController sheetPresentationController
Initialization: NO

Variable: sheetPresentationController.preferredCornerRadius
Meaning: The corner radius that the sheet attempts to present with.
Page: https://developer.apple.com/documentation/uikit/uisheetpresentationcontroller?language=objc
Context: iOS
Variables: UISheetPresentationController sheetPresentationController
Initialization: UISheetPresentationControllerAutomaticDimension

Variable: sheetPresentationController.sourceView
Meaning: The view that the sheet centers itself over.
Page: https://developer.apple.com/documentation/uikit/uisheetpresentationcontroller?language=objc
Context: iOS
Variables: UISheetPresentationController sheetPresentationController
Initialization: nil

Constant: UISheetPresentationControllerAutomaticDimension
Meaning: The default value to apply to a dimension.
Page: https://developer.apple.com/documentation/uikit/uisheetpresentationcontroller?language=objc
Language: Objective-C
Context: iOS

Typ: UISheetPresentationControllerDetentIdentifier
TypMeaning: Constants that identify system detent sizes.
Page: https://developer.apple.com/documentation/uikit/uisheetpresentationcontroller?language=objc
Language: Objective-C
Context: iOS
Value: UISheetPresentationControllerDetentIdentifierLarge
The identifier for the system's large detent.
Value2: UISheetPresentationControllerDetentIdentifierMedium
The identifier for the system's medium detent.

Typ: UISheetPresentationControllerDetent
Meaning: An object that represents a height where a sheet naturally rests.
Page: https://developer.apple.com/documentation/uikit/uisheetpresentationcontroller?language=objc
Language: Objective-C
Context: iOS

Instruction: [UISheetPresentationControllerDetent
  largeDetent]
Page: https://developer.apple.com/documentation/uikit/uisheetpresentationcontroller?language=objc
Returns: a system detent for a sheet at full height.

Instruction: [UISheetPresentationControllerDetent
  mediumDetent]
Page: https://developer.apple.com/documentation/uikit/uisheetpresentationcontroller?language=objc
Returns: a system detent for a sheet that's approximately half the height of the screen, and is inactive in compact height.

Typ: UISheetPresentationControllerDelegate
Meaning: The interface that an object implements to respond to size changes in a sheet presentation controller.
Function: sheetPresentationControllerDidChangeSelectedDetentIdentifier: Provides an opportunity to respond after the sheet presentation controller's selected detent changes.
Page: https://developer.apple.com/documentation/uikit/uisheetpresentationcontroller?language=objc
Context: iOS
Language: Objective-C

Instruction: [sheetPresentationControllerDelegate
  sheetPresentationControllerDidChangeSelectedDetentIdentifier:sheetPresentationController]
Page: https://developer.apple.com/documentation/uikit/uisheetpresentationcontroller?language=objc
Effect: Provides an opportunity to respond after the sheet presentation controller's selected detent changes.
Variables: UISheetPresentationControllerDelegate sheetPresentationControllerDelegate

Instruction: [sheetPresentationController
  animateChanges:changes
]
Page: https://developer.apple.com/documentation/uikit/uisheetpresentationcontroller?language=objc
Effect: Animates the UI changes to the sheet's properties.
Variables: UISheetPresentationController sheetPresentationController

Typ: UIPresentationController
Meaning: An object that manages the transition animations and the presentation of view controllers onscreen.
Page: https://developer.apple.com/documentation/uikit/uisheetpresentationcontroller?language=objc
Language: Objective-C
Context: iOS

Name: The presentation process
Definition: The presentation phase
Page: https://developer.apple.com/documentation/uikit/uipresentationcontroller?language=objc
Context: iOS Presentation controller
Definition2: The management phase
Definition3: The dismissal phase

Name: The presentation phase
Definition: moving the new view controller onscreen through a series of transition animations.
Page: https://developer.apple.com/documentation/uikit/uipresentationcontroller?language=objc
Context: iOS Presentation controller

Name: The management phase
Definition: responding to environment changes (such as device rotations) while the new view controller is onscreen.
Page: https://developer.apple.com/documentation/uikit/uipresentationcontroller?language=objc
Context: iOS Presentation controller

Name: The dismissal phase
Definition: moving the new view controller off screen through a series of transition animations
Page: https://developer.apple.com/documentation/uikit/uipresentationcontroller?language=objc
Context: iOS Presentation controller

Variable: presentationController.shouldRemovePresentersView
Meaning: whether the presenting view controller’s view should be removed when the presentation animations finish.
Page: https://developer.apple.com/documentation/uikit/uipresentationcontroller?language=objc
Context: iOS Presentation controller
Variables: UIPresentationController presentationController
Initialization: NO

Variable: presentationController.shouldPresentInFullscreen
Meaning: whether the presentation covers the entire screen.
Page: https://developer.apple.com/documentation/uikit/uipresentationcontroller?language=objc
Context: iOS
Variables: UIPresentationController presentationController
Initialization: YES

Variable: presentationController.adaptivePresentationStyle
Meaning: the presentation style to use when the presented view controller becomes horizontally compact.
Page: https://developer.apple.com/documentation/uikit/uipresentationcontroller?language=objc
Context: iOS
Typ: UIModalPresentationStyle
Variables: UIPresentationController presentationController

Variable: presentationController.presentationStyle
Meaning: The presentation style of the presented view controller.
Page: https://developer.apple.com/documentation/uikit/uipresentationcontroller?language=objc
Context: iOS
Typ: UIModalPresentationStyle
Variables: UIPresentationController presentationController

Variable: presentationController.overrideTraitCollection
Meaning: Interface traits for the presented view controller, to use in place of traits from the iOS environment.
Page: https://developer.apple.com/documentation/uikit/uipresentationcontroller?language=objc
Context: iOS
Variables: UIPresentationController presentationController

Variable: presentationController.frameOfPresentedViewInContainerView
Meaning: The frame rectangle to assign to the presented view at the end of the animations.
Page: https://developer.apple.com/documentation/uikit/uipresentationcontroller?language=objc
Context: iOS
Variables: UIPresentationController presentationController

Variable: presentationController.presentedView
Meaning: The view to be animated by the animator objects during a transition
Page: https://developer.apple.com/documentation/uikit/uipresentationcontroller?language=objc
Context: iOS
Variables: UIPresentationController presentationController
Initialization: the presented view controller’s view

Variable: presentationController.containerView
Meaning: The view in which the presentation occurs.
Page: https://developer.apple.com/documentation/uikit/uipresentationcontroller?language=objc
Context: iOS
Variables: UIPresentationController presentationController

Variable: presentationController.presentedViewController
Meaning: The view controller being presented.
Page: https://developer.apple.com/documentation/uikit/uipresentationcontroller?language=objc
Context: iOS
Variables: UIPresentationController presentationController

Variable: presentationController.presentingViewController
Meaning: The view controller that is the starting point for the presentation.
Page: https://developer.apple.com/documentation/uikit/uipresentationcontroller?language=objc
Context: iOS
Variables: UIPresentationController presentationController

Variable: presentationController.delegate
Meaning: The delegate object for managing adaptive presentations.
Page: https://developer.apple.com/documentation/uikit/uipresentationcontroller?language=objc
Context: iOS
Variables: UIPresentationController presentationController

Typ: UIAdaptivePresentationControllerDelegate
Meaning: A set of methods that, in conjunction with a presentation controller, determine how to respond to trait changes in your app.
Page: https://developer.apple.com/documentation/uikit/uipresentationcontroller?language=objc
Context: iOS
Language: Objective-C

Instruction: [presentationViewController
  adaptivePresentationStyleForTraitCollection:traitCollection]
Page: https://developer.apple.com/documentation/uikit/uipresentationcontroller?language=objc
Returns: the presentation style to use for the specified set of traits.
Variables: UIPresentationViewController presentationViewController
Typ: UIModalPresentationStyle

Instruction: [presentationViewController
  dismissalTransitionDidEnd:completed
]
Page: https://developer.apple.com/documentation/uikit/uipresentationcontroller?language=objc
Effect: Notifies the presentation controller that the dismissal animations finished.
Variables: UIPresentationViewController presentationViewController

Instruction: [presentationViewController
  dismissalTransitionWillBegin
]
Page: https://developer.apple.com/documentation/uikit/uipresentationcontroller?language=objc
Effect: Notifies the presentation controller that the dismissal animations are about to start.
Variables: UIPresentationViewController presentationViewController

Instruction: [presentationViewController
  dismissalTransitionDidEnd:completed
]
Page: https://developer.apple.com/documentation/uikit/uipresentationcontroller?language=objc
Effect: Notifies the presentation controller that the presentation animations finished.
Variables: UIPresentationViewController presentationViewController

Instruction: [presentationViewController
  dismissalTransitionWillBegin
]
Page: https://developer.apple.com/documentation/uikit/uipresentationcontroller?language=objc
Effect: Notifies the presentation controller that the presentation animations are about to start.
Variables: UIPresentationViewController presentationViewController

Instruction: [presentationViewController
  containerViewDidLayoutSubviews]
Page: https://developer.apple.com/documentation/uikit/uipresentationcontroller?language=objc
Effect: Called to notify the presentation controller that layout ended on the views of the container view.
Variables: UIPresentationViewController presentationViewController

Instruction: [presentationViewController
  containerViewWillLayoutSubviews
]
Page: https://developer.apple.com/documentation/uikit/uipresentationcontroller?language=objc
Effect: Notifies the presentation controller that layout is about to begin on the views of the container view.
Variables: UIPresentationViewController presentationViewController

Instruction: [presentationViewController
  initWithPresentedViewController:presentedViewController
  presentingViewController:presentingViewController
]
Page: https://developer.apple.com/documentation/uikit/uipresentationcontroller?language=objc
Returns: Initializes and returns a presentation controller for transitioning between the specified view controllers
Variables: UIPresentationViewController presentationViewController

Instruction: [adaptivePresentationControllerDelegate
  adaptivePresentationStyleForPresentationController:controller
  (traitCollection:traitCollection)
]
Page: https://developer.apple.com/documentation/uikit/uipresentationcontroller?language=objc
Returns: The new presentation style, UIModalPresentationStyle
Variables: UIAdaptivePresentationControllerDelegate adaptivePresentationControllerDelegate

Instruction: [adaptivePresentationControllerDelegate
  presentationController:controller
  viewControllerForAdaptivePresentationStyle:style
]
Page: https://developer.apple.com/documentation/uikit/uipresentationcontroller?language=objc
Returns: The view controller to display in place of the existing presented view controller.
Variables: UIAdaptivePresentationControllerDelegate adaptivePresentationControllerDelegate

Instruction: [adaptivePresentationControllerDelegate
  presentationController:controller
  willPresentWithAdaptiveStyle:style
  transitionCoordinator:transitionCoordinator
]
Page: https://developer.apple.com/documentation/uikit/uipresentationcontroller?language=objc
Effect: Notifies the delegate that an adaptivity-related transition is about to occur.
Variables: UIAdaptivePresentationControllerDelegate adaptivePresentationControllerDelegate

Instruction: [adaptivePresentationControllerDelegate
  presentationControllerDidAttemptToDismiss:presentationController
]
Page: https://developer.apple.com/documentation/uikit/uipresentationcontroller?language=objc
Effect: Notifies the delegate that a user-initiated attempt to dismiss a view was prevented.
Variables: UIAdaptivePresentationControllerDelegate adaptivePresentationControllerDelegate

Instruction: [adaptivePresentationControllerDelegate
  presentationControllerShouldDismiss:presentationController
]
Page: https://developer.apple.com/documentation/uikit/uipresentationcontroller?language=objc
Returns: Whether to allow the system to dismiss the presentation controller
Variables: UIAdaptivePresentationControllerDelegate adaptivePresentationControllerDelegate

Instruction: [adaptivePresentationControllerDelegate
  presentationControllerDidDismiss:presentationController
]
Page: https://developer.apple.com/documentation/uikit/uipresentationcontroller?language=objc
Effect: Notifies the delegate after a presentation is dismissed.
Variables: UIAdaptivePresentationControllerDelegate adaptivePresentationControllerDelegate

Instruction: [adaptivePresentationControllerDelegate
  presentationControllerWillDismiss:presentationController
]
Page: https://developer.apple.com/documentation/uikit/uipresentationcontroller?language=objc
Effect: Notifies the delegate before a presentation is dismissed.
Variables: UIAdaptivePresentationControllerDelegate adaptivePresentationControllerDelegate

Instruction: [adaptivePresentationControllerDelegate
  presentationController:presentationController
  prepareAdaptivePresentationController:adaptivePresentationController
]
Page: https://developer.apple.com/documentation/uikit/uipresentationcontroller?language=objc
Effect: The system calls this method during adaptation so the delegate can configure properties of the adaptive presentation controller before it presents.
Variables: UIAdaptivePresentationControllerDelegate adaptivePresentationControllerDelegate
Example: For example, the system automatically adapts a view controller that presents as a popover in standard size classes to a sheet in compact size classes. You can implement this method to customize the sheet’s properties before it presents.