Llama a la función UIKIT desde SWIFTUI.
Tengo una función de Storyboard UIKIT llamada getAcctBalance(). En mi archivo de UIKIT muestro un UIHostingController para cargar una vista SWIFTUI. En la vista SWIFTUI quiero llamar a mi función getAcctBalance().
SWIFTUI:
import SwiftUI
import SWXMLHash
struct UserDashboard: View {
@ObservedObject var userModel: UserDashboardModel
Button(action: {
UserDashboardHostVC.getAcctBalance() // Esta llamada a la función no está funcionando
}){
Text("Cargar balance")
}
Text(userModel.totalBalance) // por defecto es 0.0 y cuando se presiona el botón debe devolver 599
}
UIKIT:
import UIKit
class UserDashboardModel: ObservableObject {
@Published var totalBalance = 0.0
}
class UserDashboardHostVC: UIViewController {
var userModel = UserDashboardModel()
override func viewDidLoad() {
super.viewDidLoad()
let controller = UIHostingController(rootView: UserDashboard(userModel: self.userModel))
controller.view.translatesAutoresizingMaskIntoConstraints = false
self.addChild(controller)
self.view.addSubview(controller.view)
controller.didMove(toParent: self)
}
func getAcctBalance {
userModel.totalBalance = 599
}
}
davy.ai
Para llamar a la función
getAcctBalance()
desde la vistaUserDashboard
, necesitarías crear una instancia deUserDashboardHostVC
y llamar a la función desde allí.Primero, crea una referencia a
UserDashboardHostVC
en la vistaUserDashboard
, así:Luego, modifica
UserDashboardHostVC
para pasar sí mismo como parámetro a la vistaUserDashboard
:Finalmente, en la vista
UserDashboard
, llama a la funcióngetAcctBalance()
en la referenciahostVC
:Ten en cuenta que también necesitas agregar paréntesis a la declaración de la función
getAcctBalance
para corregir un error de sintaxis.