Я создаю приложение, в котором по определенному вопросу я могу использовать UIPicker, чтобы вернуться к предыдущим вопросам, однако я либо получаю ошибку, либо ничего не происходит при попытке использовать приложение.
Кроме того, все мои страницы Storyboard ID - это имя, которое я называю им для перехода.
Я попытался использовать оператор switch, но получаю слишком много ошибок, поэтому решил, что еслиоператоры могут пойти лучшепо порядку,
func pickerView(_ pickerView: UIPickerView, didSelectRow row: Int,
inComponent component: Int) {
DiffQuestion.text = data[row]
if (data == "Q1") {
storyboard?.instantiateViewController(withIdentifier: "Q1") as? Q1;
performSegue(withIdentifier: "Q1", sender: self)
}
}
Текущая ошибка в моем операторе if "Двоичный оператор '==' не может быть применен к операндам типа '[String]' и 'String'". Я знаю, что, вероятно,неправильно структурирован, я все еще новичок во всем этом.
ОБНОВЛЕНИЕ: у меня в настоящее время написано так:
func pickerView(_ pickerView: UIPickerView, didSelectRow row: Int, inComponent component: Int) {
DiffQuestion.text = data[row]
if (data[row] == "Q1") {
storyboard?.instantiateViewController(withIdentifier: "Q1"); performSegue(withIdentifier: "Q1", sender: self)
}
if (data[row] == "Q2") {
storyboard?.instantiateViewController(withIdentifier: "Q2"); performSegue(withIdentifier: "Q2", sender: self)
}
if (data[row] == "Q3") {
storyboard?.instantiateViewController(withIdentifier: "Q3"); performSegue(withIdentifier: "Q3", sender: self)
}
if (data[row] == "Q4") {
storyboard?.instantiateViewController(withIdentifier: "Q4"); performSegue(withIdentifier: "Q4", sender: self)
}
if (data[row] == "Q5") {
storyboard?.instantiateViewController(withIdentifier: "Q5"); performSegue(withIdentifier: "Q5", sender: self)
}
if (data[row] == "Q6") {
storyboard?.instantiateViewController(withIdentifier: "Q6"); performSegue(withIdentifier: "Q6", sender: self)
}
Q6 получает переход, как и Q4, но все остальноепросто выдает мне «Поток 1: SIGABRT»
Область отладки говорит:
Завершение приложения из-за необработанного исключения «NSInvalidArgumentException», причина: «Receiver () не имеет перехода с идентификатором« Q5 »'