在swift按下按钮时按顺序显示数组中的问题

时间:2015-03-17 00:07:37

标签: ios iphone arrays swift uibutton

我是学习iOS Swift的新手,如果这很容易就道歉。

我的应用首页有一个简单的布局:

UILabel(我的问题) UITextField(用户写回答的地方) UIButton(用户输入文本字段后激活)

我已经提出了4个问题。我正在尝试编写代码,当用户按下UIButton时,只要填充了文本字段,它就会显示数组中的下一个问题。

这是我到目前为止所做的:

@IBOutlet var textField: UITextField!

@IBOutlet var questionLabel: UILabel!

@IBOutlet var buttonLabel: UIButton!

let questions = ["Where are you going?", "Do you know what city?", "What are you doing there?", "When do you go?"]


@IBAction func nextButton(sender: AnyObject) {

    textField.hidden = false
    textField.placeholder = "Country"


    for var i = 0; i < 5; i++ {
        questionLabel.text = questions[0]
    }

    buttonLabel.setTitle("Next", forState: UIControlState.Normal)

  }

override func viewDidLoad() {
    super.viewDidLoad()
    // Do any additional setup after loading the view, typically from a nib.

    //keyboard
    textField.delegate = self

    buttonLabel.setTitle("Get Started", forState: UIControlState.Normal)
    questionLabel.text = ""

    // Hides the text field
    textField.hidden = true

    // Hides the image background for the text field
    barImage.hidden = true

}

我能够这样做,当用户按下“开始”按钮时,它会将按钮文本更改为“下一步”,显示textField和数组中的第一个问题。

但是,一旦用户输入了答案并按下“下一步”按钮,我就无法确定如何转到下一个问题。

非常感谢任何帮助。

尼克

1 个答案:

答案 0 :(得分:0)

添加一个名为currentQuestionIndex的属性,以跟踪您在数组中的位置,并在单击按钮时增加它:

var currentQuestionIndex = 0

@IBAction func nextButton(sender: AnyObject) {

    textField.hidden = false
    textField.placeholder = "Country"

    questionLabel.text = questions[currentQuestionIndex]

    if currentQuestionIndex < questions.count {
         ++currentQuestionIndex
         buttonLabel.setTitle("Next", forState: UIControlState.Normal)
    } else {
        (sender as UIButton).userInteractionEnabled = false
    }

}