Ios 如何为结构的每个成员分配一个编号?(swift)

Ios 如何为结构的每个成员分配一个编号?(swift),ios,arrays,swift,struct,swift2,Ios,Arrays,Swift,Struct,Swift2,我有一个测验应用程序。我希望用户能够按“下一个问题”按钮,并能够访问问题1,问题2,问题3等的顺序 我希望应用程序有一个后退按钮,这样用户也可以访问前面的问题。例如,如果用户正在回答问题3,则他们可以按后退按钮访问问题2 我想给问题结构中的每个问题分配一个数字,然后根据按下的按钮,即“下一个问题”按钮或“上一个问题”按钮,调用下一个编号的问题或上一个编号的问题 以下是我如何设置我的问题: struct Question { var Question : String! var

我有一个测验应用程序。我希望用户能够按“下一个问题”按钮,并能够访问问题1,问题2,问题3等的顺序

我希望应用程序有一个后退按钮,这样用户也可以访问前面的问题。例如,如果用户正在回答问题3,则他们可以按后退按钮访问问题2

我想给问题结构中的每个问题分配一个数字,然后根据按下的按钮,即“下一个问题”按钮或“上一个问题”按钮,调用下一个编号的问题或上一个编号的问题

以下是我如何设置我的问题:

struct  Question {
    var Question : String!
    var Answers : String!
}

var Questions = [Question]()
var QNumber = Int() 


@IBOutlet weak var labelForQuestion: UILabel!
@IBOutlet weak var textBoxForAnswer: UITextView!



override func viewDidLoad() {    
    //hiding answer
    textBoxForAnswer.hidden = true

    //Load Questions
    Questions = [

        Question(Question: "This is question 1", Answers: "This is answer 1"),

        Question(Question: "This is question 2", Answers: "This is answer 2"),

        Question(Question: "This is question 1", Answers: "This is answer 1"),

    ]
    pickQuestion()
}


func pickQuestion() {

    if Questions.count > 0 {

        //setting Qnumber equal to 0 gives sequential quiz game no repeats
        QNumber = 0

        labelForQuestion.text = Questions[QNumber].Question
        textBoxForAnswer.text = Questions[QNumber].Answers

        //remove question so it doesnt come up again
        Questions.removeAtIndex(QNumber)
    }
}


@IBAction func Next(sender: AnyObject) {
    pickQuestion()
}


@IBAction func showAnswer(sender: AnyObject) {
    textBoxForAnswer.hidden = false
}

所以基本上我想做
ui动作
,让我能够在问题之间来回切换。你知道我该怎么做吗

您应该从
pickQuestion
中删除
QNumber=0
,并在外部递增/递减它。此外,您可能应该删除
问题。删除索引(QNumber)
。总的来说,这些变化应该是:

指定初始
QNumber

var QNumber : Int = 0
更改
pickQuestion
逻辑:

func pickQuestion() {
    labelForQuestion.text = Questions[QNumber].Question
    textBoxForAnswer.text = Questions[QNumber].Answers
}
更改下一步的

@IBAction func Next(sender: AnyObject) {
    QNumber++; // you need some handling to not go out of bounds if you are already showing the last question
    pickQuestion()
}
同样的情况也适用于上一个(…)
做一个
QNumber--

进一步说明:

  • 请让方法和变量以小写字母开头:
    next
    qNumber
    问题
    ,每个
    问题的成员
    ,等等

  • 那太棒了。谢谢你的帮助,这正是我要找的。我能够加入一些代码,阻止它越界,所以它现在工作得很好。