跳转至
Protocol

UIViewControllerRepresentable

A view that represents a UIKit view controller.

Declaration

protocol UIViewControllerRepresentable : View where Self.Body == Never

Overview

Use a UIViewControllerRepresentable instance to create and manage a UIViewController object in your SwiftUI interface. Adopt this protocol in one of your app's custom instances, and use its methods to create, update, and tear down your view controller. The creation and update processes parallel the behavior of SwiftUI views, and you use them to configure your view controller with your app's current state information. Use the teardown process to remove your view controller cleanly from your SwiftUI. For example, you might use the teardown process to notify other objects that the view controller is disappearing.

To add your view controller into your SwiftUI interface, create your UIViewControllerRepresentable instance and add it to your SwiftUI interface. The system calls the methods of your custom instance at appropriate times.

The system doesn't automatically communicate changes occurring within your view controller to other parts of your SwiftUI interface. When you want your view controller to coordinate with other SwiftUI views, you must provide a NSViewControllerRepresentable/Coordinator instance to facilitate those interactions. For example, you use a coordinator to forward target-action and delegate messages from your view controller to any SwiftUI views.

Availability

iOS 13.0+

tvOS 13.0+

Topics


Instance Property

body Declares the content and behavior of this view.


Associated Type

Coordinator A type to coordinate with the view controller.

UIViewControllerType The type of view controller to present.


Type Alias

Context A type alias for the representable's context.


Instance Method

makeCoordinator() Creates the custom instance that you use to communicate changes from your view controller to other parts of your SwiftUI interface.

makeCoordinator() Creates the custom instance that you use to communicate changes from your view controller to other parts of your SwiftUI interface.

makeUIViewController(context:) Creates the view controller object and configures its initial state.

updateUIViewController(_:context:) Updates the state of the specified view controller with new information from SwiftUI.


Type Method

dismantleUIViewController(_:coordinator:) Cleans up the presented view controller (and coordinator) in anticipation of their removal.

dismantleUIViewController(_:coordinator:) Cleans up the presented view controller (and coordinator) in anticipation of their removal.