Restablecer el Estado de las Variables A los Valores Iniciales de xcode

0

Pregunta

¿Cuál es la mejor manera de ir sobre el restablecimiento de las variables de estado, el uso de un botón. He intentado un montón de diferentes funcs pero ninguno funciona.

Estoy tratando de utilizar este botón:

primaryButton: .destructive(Text("Delete")) {

Code

},secondaryButton: 
.cancel()

Para restablecer estas variables de Estado:

@State var statsValue1 = 0 
@State var statsValue2 = 0 
@State var statsValue3 = 0 
@State var statsValue4 = 0 
@State var statsValue5 = 0 
@State var statsValue6 = 0

(que son el contenido principal de la vista)

button reset state swiftui
2021-11-22 07:58:47
1

Mejor respuesta

0

Cómo sobre el uso de un modelo de vista, el @Published la propiedad wrapper le notifica acerca de los cambios de la modelo y el reset la función crea una nueva instancia

struct Model {
    var value1 = 0
    var value2 = 0
    var value3 = 0
}

class ViewModel : ObservableObject {
    @Published var model = Model()
    
    func reset() {
        model = Model()
    }
}

y una prueba simple de la lógica en la vista de contenido

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") }
        }
    }
}
2021-11-22 08:31:14

En otros idiomas

Esta página está en otros idiomas

Русский
..................................................................................................................
Italiano
..................................................................................................................
Polski
..................................................................................................................
Română
..................................................................................................................
한국어
..................................................................................................................
हिन्दी
..................................................................................................................
Français
..................................................................................................................
Türk
..................................................................................................................
Česk
..................................................................................................................
Português
..................................................................................................................
ไทย
..................................................................................................................
中文
..................................................................................................................
Slovenský
..................................................................................................................