#ios #swift #xcode3
#iOS #swift #xcode3
Вопрос:
Когда я запускаю свой код, он корректно изменяет QLabel.text, но не изменяет текст ответов. все кнопки сохраняют тот же текст, что и до выбора вопросов. При первой загрузке ответы также не загружаются. он сохраняет текст, установленный в инспекторе атрибутов.
Я использую Xcode версии 3.0
import UIKit
struct Question
{
var Question : String!
var Answers : [String]!
var Answer : Int!
}
class AnimalViewController: UIViewController {
@IBOutlet weak var QLabel: UILabel!
@IBOutlet var Buttons: [UIButton]!
var Questions = [Question]()
var QNumber = Int()
var AnswerNumber = Int()
override func viewDidLoad() {
super.viewDidLoad()
Questions = [Question(Question: "What is the fastest fish in the ocean?", Answers: ["Flounder","Sailfis","Swordfish","Lionfish","Tiger Shark"], Answer: 1),
Question(Question: "Which animal has the most legs?", Answers: ["Shrimp","Octopus","Millipede","Dog","Lion"], Answer: 2),
Question(Question: "What are baby beavers called?", Answers: ["Pups","Joeys","Beaves","Kids","Kittens or Kits"], Answer: 4)]
PickQuestion()
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
func PickQuestion(){
if Questions.count > 0
{
QNumber = 0
QLabel.text = Questions[QNumber].Question
AnswerNumber = Questions[QNumber].Answer
for i in 0..<Buttons.count
{
Buttons[i].setTitle(Questions[QNumber].Answers[i], for: UIControlState.normal)
}
Questions.remove(at: QNumber)
}
else
{
NSLog("Done")
}
}
@IBAction func Btn1(_ sender: AnyObject) {
if AnswerNumber == 0
{
PickQuestion()
}
else
{
NSLog("Wrong!")
}
}
@IBAction func Btn2(_ sender: AnyObject) {
if AnswerNumber == 1
{
PickQuestion()
}
else
{
NSLog("Wrong!")
}
}
@IBAction func Btn3(_ sender: AnyObject) {
if AnswerNumber == 2
{
PickQuestion()
}
else
{
NSLog("Wrong!")
}
}
@IBAction func Btn4(_ sender: AnyObject) {
if AnswerNumber == 3
{
PickQuestion()
}
else
{
NSLog("Wrong!")
}
}
@IBAction func Btn5(_ sender: AnyObject) {
if AnswerNumber == 4
{
PickQuestion()
}
else
{
NSLog("Wrong!")
}
}
}
Комментарии:
1. Вы никогда ничего не добавляете к
Buttons
, поэтомуButtons.count
равно 0, и цикл никогда не запускается.2. как бы мне добавить ответы на мои вопросы в массиве вопросов к моим кнопкам? очень начинающий вопрос, который я знаю
3. Вам нужны IBOutlets для каждой кнопки, а затем добавьте их к кнопкам в viewDidLoad.
4. youtube.com/watch?v=dyxqsfrCaeM Я использовал это руководство Джареда Дэвидсона, и он никогда не настраивал их таким образом. вот почему я в замешательстве. Я не знаю разницы между моим и его
5. Тогда я бы убедился, что IBOutlet для кнопок правильно подключен ко всем кнопкам в вашей раскадровке