将状态变量重置为初始值 xcode
Reset State Variables To Initial Values xcode
使用按钮重置状态变量的最佳方法是什么。我尝试了很多不同的功能,但 none 有效。
我正在尝试使用此按钮:
primaryButton: .destructive(Text("Delete")) {
Code
},secondaryButton:
.cancel()
重置这些状态变量:
@State var statsValue1 = 0
@State var statsValue2 = 0
@State var statsValue3 = 0
@State var statsValue4 = 0
@State var statsValue5 = 0
@State var statsValue6 = 0
(在主内容视图中)
如何使用视图模型,@Published
属性 包装器通知模型的任何更改,reset
函数创建一个新实例
struct Model {
var value1 = 0
var value2 = 0
var value3 = 0
}
class ViewModel : ObservableObject {
@Published var model = Model()
func reset() {
model = Model()
}
}
以及内容视图中的简单测试逻辑
struct ContentView : View {
@StateObject var viewModel = ViewModel()
var body : some View {
VStack(spacing: 20) {
Text("Value 1: \(viewModel.model.value1)")
Text("Value 2: \(viewModel.model.value2)")
Text("Value 3: \(viewModel.model.value3)")
Divider()
Button ( "Delete", role: .destructive, action: viewModel.reset )
Button { viewModel.model.value1 += 1 } label: { Text("Increment value 1") }
Button { viewModel.model.value2 += 1 } label: { Text("Increment value 2") }
Button { viewModel.model.value3 += 1 } label: { Text("Increment value 3") }
}
}
}
使用按钮重置状态变量的最佳方法是什么。我尝试了很多不同的功能,但 none 有效。
我正在尝试使用此按钮:
primaryButton: .destructive(Text("Delete")) {
Code
},secondaryButton:
.cancel()
重置这些状态变量:
@State var statsValue1 = 0
@State var statsValue2 = 0
@State var statsValue3 = 0
@State var statsValue4 = 0
@State var statsValue5 = 0
@State var statsValue6 = 0
(在主内容视图中)
如何使用视图模型,@Published
属性 包装器通知模型的任何更改,reset
函数创建一个新实例
struct Model {
var value1 = 0
var value2 = 0
var value3 = 0
}
class ViewModel : ObservableObject {
@Published var model = Model()
func reset() {
model = Model()
}
}
以及内容视图中的简单测试逻辑
struct ContentView : View {
@StateObject var viewModel = ViewModel()
var body : some View {
VStack(spacing: 20) {
Text("Value 1: \(viewModel.model.value1)")
Text("Value 2: \(viewModel.model.value2)")
Text("Value 3: \(viewModel.model.value3)")
Divider()
Button ( "Delete", role: .destructive, action: viewModel.reset )
Button { viewModel.model.value1 += 1 } label: { Text("Increment value 1") }
Button { viewModel.model.value2 += 1 } label: { Text("Increment value 2") }
Button { viewModel.model.value3 += 1 } label: { Text("Increment value 3") }
}
}
}