отправить событие из UIViewControllerRepresentable в представление swiftui

Я пытаюсь поймать событие, которое происходит в UIViewController в представлении SwiftUI. архитектура находится в SwiftUI с элементом в Swift:

Вид

      struct PlayGame: View {
    var body: some View {
          if stateProgress.stateOfGame == 0 {
            CardsDeckRepresentable()
        }
    }
}

UIViewControllerRepresentable

      struct CardsDeckRepresentable: UIViewControllerRepresentable {
    typealias UIViewControllerType = CardsDeckViewController
    

    func makeUIViewController(context: Context) -> CardsDeckViewController {
        let deck = CardsDeckViewController()
        return deck
    }
    
    func updateUIViewController(_ uiViewController: CardsDeckViewController, context: Context) {

    }
}

UIViewController

      class CardsDeckViewController : UIViewController, iCarouselDelegate, iCarouselDataSource{

... some code ...

    func moveCardChoosen(number:Int) {
        
        self.view.addSubview(cardMobile)

        UIView.animate(withDuration: 0.5, delay: 0.0, options:[], animations: {
            self.cardMobile.center.y = self.cardPlace5.center.y
        }, completion: { finished in
            if finished {
                self.cardMobile.isHidden = true
            }
        })
    }
}

В конце анимации я хочу позвонить в swiftUIView для обновления.

Я пробовал использовать какой-нибудь ObservableObject или функцию updateUIViewController. Я могу передавать данные из представления SwiftUI в UIViewController через UIViewControllerRepresentable. Но как оживить изменение от UIViewController? Кажется, что updateUIViewController не вызывается.

0 ответов

Другие вопросы по тегам