要更新独立于子视图的类中的属性并更新父视图,可以采取以下步骤:
以下是一个示例代码,展示了如何更新独立于子视图的类中的属性并更新父视图:
import SwiftUI
// 步骤1:创建一个包含要更新的属性的类
class UserData: ObservableObject {
@Published var name: String = "John Doe"
}
struct ParentView: View {
// 步骤2:在父视图中创建数据模型的实例
@StateObject var userData = UserData()
var body: some View {
VStack {
Text("Parent View")
// 步骤3:在子视图中使用@ObservedObject属性包装器
ChildView(userData: userData)
// 显示更新后的属性值
Text("Updated Name: \(userData.name)")
}
}
}
struct ChildView: View {
// 步骤3:在子视图中使用@ObservedObject属性包装器
@ObservedObject var userData: UserData
var body: some View {
VStack {
Text("Child View")
// 步骤4:更新属性
Button(action: {
userData.name = "Jane Smith"
}) {
Text("Update Name")
}
}
}
}
// 启动应用程序
@main
struct ContentView: App {
var body: some Scene {
WindowGroup {
ParentView()
}
}
}
该示例中,UserData
类包含一个可观察的属性name
。在父视图ParentView
中,我们创建了一个UserData
实例,并将其传递给子视图ChildView
。子视图使用@ObservedObject
属性包装器来观察UserData
实例的变化。
在子视图中,我们通过点击按钮来更新userData
实例中的name
属性。这将自动触发视图的刷新,并且父视图中的Text("Updated Name: \(userData.name)")
将显示更新后的属性值。
这是一个简单的示例,演示了如何在独立的类中更新属性并更新父视图。在实际应用中,您可以根据具体的需求和复杂性来设计和使用数据模型。
领取专属 10元无门槛券
手把手带您无忧上云