Я пытаюсь создать калькулятор, который отображает пользователю результаты об их оценках в колледже.Пользователь нажимает кнопки и в зависимости от их выбора пользовательский интерфейс обновляется и отображает следующий вопрос.Мой код работает до тех пор, пока мне не понадобится доступ к ранее нажатой кнопке, которая была выбрана ранее и на другом контроллере представления.Проблема, с которой я столкнулся, заключается в одном контроллере представления, который пользователь может выбрать, если он хочет знать Calculation1 (связанный с верхней кнопкой с sender.tag == 1
) или Calculation2 (нижнюю кнопку, sender.tag == 2
).Независимо от того, какая кнопка нажата, выполняется переход к тому же вопросу на новом контроллере представления.После ответа на этот взаимный вопрос остается нажать только одну кнопку.Я пытаюсь закодировать оператор if, если был выбран Calculation1 (из предыдущего VC), затем обновить представление до следующего вопроса, и, если было выбрано Calculation2, выполнить переход к другому VC для следующего вопроса.То, как я пытался использовать логическое значение, было свойством предыдущего VC.Оператор if не работает, и вместо этого одно и то же действие происходит независимо от выбора.
Это для приложения iOS
со Swift с использованием Xcode.Я попытался создать логическое значение как свойство, чтобы при нажатии «Вычисление1» findCalc1 = true
, а затем доступ к этому логическому значению в качестве свойства в следующем VC, но это не сработало.Я также пытался подготовить логическое значение для перехода к взаимному вопросу, но это тоже не сработало.Я чувствую, что у меня есть пробел в моем понимании того, что может и не может быть выполнено между различными VC.
// Вот мой код для первого VC
@IBAction func lightButtonPressed(_ sender: UIButton) {
if sender.tag == 1 && lightViewPromptIndex == 1 {
desiredGpaText = textfield.text!
performSegue(withIdentifier: "goToDarkButtonVC", sender: self)
} else if sender.tag == 2 && lightViewPromptIndex == 1 {
performSegue(withIdentifier: "goToDarkButtonVC", sender: self)
}
// Вотмой код для второго ВК
@IBAction func darkButtonPressed(_ sender: Any) {
if aboveTopPromptIndex == 1 && lightViewObject().findCalc1 == true {
aboveTopTextPrompt.text = aboveTopPrompt2
topTextfield.placeholder = "Ex: 76.00"
besideTopTextLabel.isHidden = true
underTopTextLabel.text = "course credits"
aboveBottomTextPrompt.text = "that count toward my GPA."
bottomTextfield.isHidden = true
underBottomTextLabel.isHidden = true
bottomFloatingLabel.isHidden = true
darkButton.setTitle(nextTitle, for: .normal)
aboveTopPromptIndex = 2
} else if aboveTopPromptIndex == 1 && lightViewObject().findCalc1 == false {
performSegue(withIdentifier: "darkViewToABC", sender: TextfieldTwoLightButtonsViewController.self)
В общем вопросе есть aboveTopPromptIndex == 1
.Я хотел бы, чтобы этот вопрос задавался и если ранее был выбран Calculation1, для запуска первого куска кода в операторе if ... и, если требуется Calculation2, для перехода в оператор else if.Вместо этого, независимо от того, какая кнопка нажата, выполняется первая часть оператора if независимо от того, был ли выбран Calculation2 ранее.