Instance Method

setOverrideTraitCollection(_:forChildViewController:)

Changes the traits assigned to the specified child view controller.

Declaration

func setOverrideTraitCollection(_ collection: UITraitCollection?, forChildViewController childViewController: UIViewController)

Parameters

collection

The new traits to apply to the child view controller.

childViewController

The child view controller whose trait collection is to be changed.

Discussion

Usually, traits are passed unmodified from the parent view controller to its child view controllers. When implementing a custom container view controller, you can use this method to change the traits of any embedded child view controllers to something more appropriate for your layout. Making such a change alters other view controller behaviors associated with that child. For example, modal presentations behave differently in a horizontally compact versus horizontally regular environment. You might also make such a change to force the same set of traits on the child view controller regardless of the actual trait environment.

See Also

Managing Child View Controllers in a Custom Container

var childViewControllers: [UIViewController]

An array of view controllers that are children of the current view controller.

func addChildViewController(UIViewController)

Adds the specified view controller as a child of the current view controller.

func removeFromParentViewController()

Removes the view controller from its parent.

var shouldAutomaticallyForwardAppearanceMethods: Bool

Returns a Boolean value indicating whether appearance methods are forwarded to child view controllers.

func beginAppearanceTransition(Bool, animated: Bool)

Tells a child controller its appearance is about to change.

func endAppearanceTransition()

Tells a child controller its appearance has changed.

func overrideTraitCollection(forChildViewController: UIViewController)

Retrieves the trait collection for a child view controller.