Refre sh Text в Swift UI после 1-го запуска - PullRequest
0 голосов
/ 16 апреля 2020

Я ломаю голову, пытаясь заставить этот код работать, я только начинаю работу на SwiftUI и не нашел решения. У меня есть математическое уравнение, которое добавляет переменные и принимает ответ от пользователя. Моя проблема в том, что когда ответ правильный, как я могу получить переменные numbers1 & numbers2 для рефракции sh, получения новых чисел и задания другой математической задачи?

import SwiftUI
import Foundation


struct ContentView: View {

    @State private var answer = ""
    @State private var number1 = ""
    @State private var number2 = ""

    @State private var messageText = ""
    @State private var keyboardHeight: CGFloat = 0.0


    var numbers1 : Int = [ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10].randomElement()!
    var numbers2 : Int = [ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10].randomElement()!

    var questionNumber = 0
    var value = 0.00


    var body: some View {

        VStack {


            ForEach((1...10).reversed(), id: \.self) {_ in
                Text(self.number2)

            }

            Text("\(numbers1)")
                .font(.largeTitle)
                .padding()

            Text("\(numbers2)")
                .font(.largeTitle)
                .padding()

            TextField("answer", text: self.$answer)
                .padding(/*@START_MENU_TOKEN@*/.all/*@END_MENU_TOKEN@*/)
                .font(/*@START_MENU_TOKEN@*/.largeTitle/*@END_MENU_TOKEN@*/)
                //.keyboardType(.numberPad)



            Button(action:  {

                var addition: Int {

                    let addition = self.numbers1 + self.numbers2

                    return addition
                }

                print("submit button pressed")
                print(addition)
                if (self.answer == String(addition)) {
                    print("Answer is Correct!")

                }

                else {
                    print("Answer is Incorrect")

                }

                self.answer = ""


            }) {
                Text("Submit")
                    .font(.largeTitle)
                .padding()
                .background(Color.red)

                .foregroundColor(.white)
                .cornerRadius(40)

            }
        //    .padding()
            .actionSheet(isPresented: /*@START_MENU_TOKEN@*/ /*@PLACEHOLDER=Is Presented@*/.constant(false)/*@END_MENU_TOKEN@*/) {
                ActionSheet(title: Text(/*@START_MENU_TOKEN@*/ /*@PLACEHOLDER=Title@*/"Action Sheet"/*@END_MENU_TOKEN@*/))
            }


        }


        }

    }



struct ContentView_Previews: PreviewProvider {
    static var previews: some View {
        ContentView()
    }
}

    ```
    enter code here

1 Ответ

0 голосов
/ 16 апреля 2020

то, что вы можете сделать, это: объявить

@State var numbers1 : Int = [ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10].randomElement()!
@State var numbers2 : Int = [ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10].randomElement()!

и

if (self.answer == String(addition)) {
    print("Answer is Correct!")
    self.numbers1 = [ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10].randomElement()!
    self.numbers2 = [ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10].randomElement()!
}

или некоторые другие варианты, например, сохранить массив в переменной.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...