首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如何将我的SwiftUI视图的@状态交换为我的视图模型@发布的变量?

要将SwiftUI视图的@State状态交换为视图模型的@Published变量,可以按照以下步骤进行操作:

  1. 创建一个视图模型类,该类应该遵循ObservableObject协议,并使用@Published属性包装需要交换的变量。例如:
代码语言:txt
复制
import SwiftUI
import Combine

class ViewModel: ObservableObject {
    @Published var myVariable: String = ""
}
  1. 在视图中使用@State属性包装需要交换的变量,并将其绑定到视图模型的对应变量。例如:
代码语言:txt
复制
struct ContentView: View {
    @State private var myVariable: String = ""
    @ObservedObject var viewModel = ViewModel()

    var body: some View {
        VStack {
            TextField("Enter text", text: $myVariable)
                .textFieldStyle(RoundedBorderTextFieldStyle())
                .padding()

            Button(action: {
                viewModel.myVariable = myVariable
            }) {
                Text("Update ViewModel")
            }
        }
    }
}

在上述示例中,通过将视图的@State变量myVariable绑定到文本框中,可以实时获取用户输入的值。当用户点击按钮时,将该值赋给视图模型的myVariable变量。

  1. 在视图的预览中,将视图模型传递给视图,以便在预览中使用。例如:
代码语言:txt
复制
struct ContentView_Previews: PreviewProvider {
    static var previews: some View {
        ContentView().environmentObject(ViewModel())
    }
}

通过将视图模型传递给视图的环境中,可以在预览中使用视图模型的数据。

这样,当用户在文本框中输入内容并点击按钮时,视图模型的myVariable变量将被更新,从而实现了将SwiftUI视图的@State状态交换为视图模型的@Published变量。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

领券