按 swift 中的按钮按顺序显示数组中的问题
Display questions from an array in order on a button press in swift
我是新手 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
}
我能够做到,当用户按下 'Get started' 按钮时,它会将按钮文本更改为 'Next',显示文本字段和数组中的第一个问题。
但我无法弄清楚如何在用户输入答案并按下“下一步”按钮后转到下一个问题。
非常感谢任何帮助。
尼克
添加一个名为 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
}
}
我是新手 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
}
我能够做到,当用户按下 'Get started' 按钮时,它会将按钮文本更改为 'Next',显示文本字段和数组中的第一个问题。
但我无法弄清楚如何在用户输入答案并按下“下一步”按钮后转到下一个问题。
非常感谢任何帮助。
尼克
添加一个名为 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
}
}