Stato di Reset Variabili A Valori Iniziali xcode

0

Domanda

Qual è il modo migliore per andare su come reimpostare le variabili di stato, tramite un pulsante. Ho provato un carico di diverse funzioni individuali, ma nessuna funziona.

Sto cercando di usare questo pulsante:

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

Code

},secondaryButton: 
.cancel()

Per ripristinare queste variabili di Stato:

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

(che sono il contenuto principale vista)

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

Migliore risposta

0

Come sull'utilizzo di un modello di visualizzazione, l' @Published proprietà wrapper informa circa le eventuali modifiche del modello e la reset funzione crea una nuova istanza

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

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

e un semplice test di logica nella visualizzazione del contenuto

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

In altre lingue

Questa pagina è in altre lingue

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