Как интегрировать собственные представления SwiftUI в Compose Multiplatform с помощью UIKitView?Android

Форум для тех, кто программирует под Android
Anonymous
Как интегрировать собственные представления SwiftUI в Compose Multiplatform с помощью UIKitView?

Сообщение Anonymous »

Я создаю приложение Compose Multiplatform (CMP), и мне нужно использовать некоторые собственные компоненты, специфичные для iOS (например, MapKit или пользовательскую диаграмму SwiftUI), которые уже встроены в SwiftUI.
Хотя CMP обеспечивает отличное совместное использование пользовательского интерфейса, мне необходимо убедиться, что эти конкретные компоненты сохраняют свою исходную производительность и внешний вид. Я понимаю, что мне нужно использовать UIKitView для соединения собственных представлений iOS, но я борюсь с шаблоном, необходимым для переноса SwiftUI View во что-то, что Compose может отображать в iosMain.
Цель:
Я хочу передать строку заголовка из моего общего кода Compose и отобразить ее внутри собственного SwiftUI VStack.
Моя текущая настройка:
В моем commonMain у меня есть функция ожидания:
Kotlin

Код: Выделить всё

@Composable
expect fun NativeButton(title: String, onAction: () -> Void)
Задача:
Как реализовать фактическую часть в iosMain? В частности:
  • Как использовать UIHostingController для преобразования представления SwiftUI в UIViewController?
  • Как извлечь UIView из этого контроллера для использования внутри фабрики UIKitView?
  • Как мне обрабатывать обновления, если title изменяется состояние в Compose?
Будем очень признательны за любые рекомендации по стандартным шаблонам 2026 года для этого взаимодействия!

Подробнее здесь: https://stackoverflow.com/questions/798 ... -uikitview

Вернуться в «Android»