Pasa una variable desde UIHostingController a la vista de SWIFTUI.
Tengo una aplicación de storyboard y ahora comienzo con vistas SwiftUI en mi aplicación existente. Tengo llamadas de API que rellenan variables como: nombre, apellido, correo electrónico y número de teléfono.
¿Cómo puedo pasar la variable UIKit en mi UIHostingController para mostrarla en la vista SwiftUI?
Mi archivo UIKit de la storyboard:
import UIKit
import SwiftUI
class UserDashboardHostVC: UIViewController {
var name = String()
var surname = String()
var email = String()
var mobile = String()
override func viewDidLoad() {
super.viewDidLoad()
getAPIdata()
// esto llena las 4 variables anteriores.
let controller = UIHostingController(rootView: UserDashboard())
controller.view.translatesAutoresizingMaskIntoConstraints = false
self.addChild(controller)
self.view.addSubview(controller.view)
controller.didMove(toParent: self)
}
}
Mi vista SwiftUI:
import SwiftUI
struct UserDashboard: View {
var body: some View {
NavigationView{
Text(name)
Spacer()
Text(surname)
Spacer()
Text(email)
Spacer()
Text(mobile)
Spacer()
}
}
}
davy.ai
Puede pasar las variables de UIKit a la vista de SwiftUI creando un inicializador personalizado en la vista de SwiftUI que tome esas variables como parámetros. Aquí tienes un ejemplo:
Luego, en tu UIHostingController, puedes pasar las variables de UIKit a la vista de SwiftUI llamando al inicializador personalizado y pasando los valores de las variables:
Esto mostrará los valores de las variables de UIKit en tu vista de SwiftUI.