edit 05/06/19: Добавлена информация о UIHostingController, предложенная @Departamento B в его ответе.Кредиты идут к нему!
Использование SwiftUI с UIKit
Можно использовать SwiftUI
компонентов в существующих UIKit
средах, оборачивая SwiftUI
View
вUIHostingController
вот так:
let swiftUIView = SomeSwiftUIView() // swiftUIView is View
let viewCtrl = UIHostingController(rootView: swiftUIView)
Также возможно переопределить UIHostingController
и настроить его под свои нужды, например, установив preferredStatusBarStyle
вручную, если он не работает через SwiftUI
, какожидается.
UIHostingController
задокументировано здесь .
Использование UIKit с SwiftUI
Если следует использовать существующее представление UIKit
в среде SwiftUI
протокол UIViewRepresentable
поможет!Он задокументирован здесь и может быть замечен в действии в этом официальном руководстве Apple.
Совместимость
Обратите внимание, что компоненты UIKit
и SwiftUI
могут использоваться только совместно, если приложение предназначено для iOS 13+, поскольку SwiftUI
доступна только для iOS 13+.См. этот пост для получения дополнительной информации.