---
title: UIHostingController
framework: swiftui
role: symbol
role_heading: Class
path: swiftui/uihostingcontroller
---

# UIHostingController

A UIKit view controller that manages a SwiftUI view hierarchy.

## Declaration

```swift
@MainActor @preconcurrency class UIHostingController<Content> where Content : View
```

## Overview

Overview Create a UIHostingController object when you want to integrate SwiftUI views into a UIKit view hierarchy. At creation time, specify the SwiftUI view you want to use as the root view for this view controller; you can change that view later using the rootView property. Use the hosting controller like you would any other view controller, by presenting it or embedding it as a child view controller in your interface.

## Topics

### Creating a hosting controller object

- [init(rootView:)](swiftui/uihostingcontroller/init(rootview:).md)
- [init(coder:rootView:)](swiftui/uihostingcontroller/init(coder:rootview:).md)
- [init(coder:)](swiftui/uihostingcontroller/init(coder:).md)

### Responding to view-related events

- [loadView()](swiftui/uihostingcontroller/loadview().md)
- [viewWillAppear(_:)](swiftui/uihostingcontroller/viewwillappear(_:).md)
- [viewDidAppear(_:)](swiftui/uihostingcontroller/viewdidappear(_:).md)
- [viewWillDisappear(_:)](swiftui/uihostingcontroller/viewwilldisappear(_:).md)
- [viewDidDisappear(_:)](swiftui/uihostingcontroller/viewdiddisappear(_:).md)
- [willMove(toParent:)](swiftui/uihostingcontroller/willmove(toparent:).md)
- [didMove(toParent:)](swiftui/uihostingcontroller/didmove(toparent:).md)
- [viewWillTransition(to:with:)](swiftui/uihostingcontroller/viewwilltransition(to:with:).md)
- [viewWillLayoutSubviews()](swiftui/uihostingcontroller/viewwilllayoutsubviews().md)
- [target(forAction:withSender:)](swiftui/uihostingcontroller/target(foraction:withsender:).md)
- [rootView](swiftui/uihostingcontroller/rootview.md)

### Checking for modality

- [isModalInPresentation](swiftui/uihostingcontroller/ismodalinpresentation.md)

### Managing the size

- [sizingOptions](swiftui/uihostingcontroller/sizingoptions.md)
- [preferredContentSizeDidChange(forChildContentContainer:)](swiftui/uihostingcontroller/preferredcontentsizedidchange(forchildcontentcontainer:).md)
- [sizeThatFits(in:)](swiftui/uihostingcontroller/sizethatfits(in:).md)
- [safeAreaRegions](swiftui/uihostingcontroller/safearearegions.md)

### Configuring the status bar

- [preferredStatusBarStyle](swiftui/uihostingcontroller/preferredstatusbarstyle.md)
- [preferredStatusBarUpdateAnimation](swiftui/uihostingcontroller/preferredstatusbarupdateanimation.md)
- [prefersStatusBarHidden](swiftui/uihostingcontroller/prefersstatusbarhidden.md)
- [childForStatusBarStyle](swiftui/uihostingcontroller/childforstatusbarstyle.md)
- [childForStatusBarHidden](swiftui/uihostingcontroller/childforstatusbarhidden.md)

### Configuring the home indicator

- [prefersHomeIndicatorAutoHidden](swiftui/uihostingcontroller/prefershomeindicatorautohidden.md)
- [childForHomeIndicatorAutoHidden](swiftui/uihostingcontroller/childforhomeindicatorautohidden.md)

### Configuring the interface appearance

- [preferredUserInterfaceStyle](swiftui/uihostingcontroller/preferreduserinterfacestyle.md)
- [preferredScreenEdgesDeferringSystemGestures](swiftui/uihostingcontroller/preferredscreenedgesdeferringsystemgestures.md)
- [childForScreenEdgesDeferringSystemGestures](swiftui/uihostingcontroller/childforscreenedgesdeferringsystemgestures.md)

### Accessing the available key commands

- [keyCommands](swiftui/uihostingcontroller/keycommands.md)

### Managing undo

- [undoManager](swiftui/uihostingcontroller/undomanager.md)

### Instance Properties

- [childViewControllerForPreferredContainerBackgroundStyle](swiftui/uihostingcontroller/childviewcontrollerforpreferredcontainerbackgroundstyle.md)
- [preferredContainerBackgroundStyle](swiftui/uihostingcontroller/preferredcontainerbackgroundstyle.md)

### Instance Methods

- [addChild(_:)](swiftui/uihostingcontroller/addchild(_:).md)
- [canPerformAction(_:withSender:)](swiftui/uihostingcontroller/canperformaction(_:withsender:).md)

## Relationships

### Inherits From

- [UIViewController](uikit/uiviewcontroller.md)

### Conforms To

- [CVarArg](swift/cvararg.md)
- [Copyable](swift/copyable.md)
- [CustomDebugStringConvertible](swift/customdebugstringconvertible.md)
- [CustomStringConvertible](swift/customstringconvertible.md)
- [Equatable](swift/equatable.md)
- [Escapable](swift/escapable.md)
- [Hashable](swift/hashable.md)
- [NSCoding](foundation/nscoding.md)
- [NSExtensionRequestHandling](foundation/nsextensionrequesthandling.md)
- [NSObjectProtocol](objectivec/nsobjectprotocol.md)
- [NSTouchBarProvider](appkit/nstouchbarprovider.md)
- [UIActivityItemsConfigurationProviding](uikit/uiactivityitemsconfigurationproviding.md)
- [UIAppearanceContainer](uikit/uiappearancecontainer.md)
- [UIContentContainer](uikit/uicontentcontainer.md)
- [UIFocusEnvironment](uikit/uifocusenvironment.md)
- [UIPasteConfigurationSupporting](uikit/uipasteconfigurationsupporting.md)
- [UIResponderStandardEditActions](uikit/uiresponderstandardeditactions.md)
- [UIStateRestoring](uikit/uistaterestoring.md)
- [UITraitChangeObservable](uikit/uitraitchangeobservable-67e94.md)
- [UITraitEnvironment](uikit/uitraitenvironment.md)
- [UIUserActivityRestoring](uikit/uiuseractivityrestoring.md)

## See Also

### Displaying SwiftUI views in UIKit

- [Using SwiftUI with UIKit](uikit/using-swiftui-with-uikit.md)
- [Unifying your app’s animations](swiftui/unifying-your-app-s-animations.md)
- [UIHostingControllerSizingOptions](swiftui/uihostingcontrollersizingoptions.md)
- [UIHostingConfiguration](swiftui/uihostingconfiguration.md)
- [UIHostingSceneDelegate](swiftui/uihostingscenedelegate.md)
