В последнем viewcontroller моего приложения я написал код, который создает количество меток, которые заполнены случайными символами из набора
Под метками появляются текстовые поля, где пользователь должен совпасть с символами меток,Когда он нажимает кнопку, его ответ проверяется.Если ответ правильный, оценка обновляется.
После этого должна обновляться метка оценки, и должен генерироваться и показываться новый текст для меток с символами, но вот где я застреваю ... Мой инстинктчтобы добавить цикл к коду в viewDidLoad, но так как код для проверки ответа находится в функции buttonAction вне viewDidLoad, я не знаю, как это сделать ...
Вотнекоторый код из моего приложения, который может прояснить ситуацию.Я удалил довольно много простого кода и добавил строку комментария только для этого примера.
override func viewDidLoad()
{
super.viewDidLoad()
// variables are declared, the number of labels is calculated based on the frame size
// the text for the labels is calculated based on a function in a separate class I wrote
var a = 0
while a < numberOfLabels {
// the UILabels are made and filled
// the corresponding UITextFields are made
a += 1
labelX += labelWidth
}
// then here the button is coded, the last lines are:
myButton.addTarget(self, action: #selector(buttonAction), for: .touchUpInside)
view.addSubview(myButton)
}
@objc func buttonAction(sender: UIButton!) {
var a = 0
var rightAnswer = false
var userInput: [String] = Array()
while a < numberOfLabels.shared.category! {
if let theLabel = self.view.viewWithTag(a) as? UITextField {
let tekstInput = theLabel.text
userInput.insert(tekstInput!, at:a-1)
}
a = a + 1
}
let controle = Controle()
rightAnswer = controle.checkAnswer(userAnswer: userInput)
if rightAnswer {
if var score = PassScore.shared.category {
score += 1
PassScore.shared.category = score
}
else {
var score = 1
PassScore.shared.category = score
}
}
return
}