将Swift变量从一个IBAction传递到另一个

时间:2016-02-17 19:37:16

标签: ios swift variables

在我的应用程序中,我有一个" Play"按钮,它创建两个随机数并为这些数字创建一个字符串,然后用于填充卡的两个UIImage持有者(在数组中设置的卡0-10)。然后将两个随机数加在一起。

有一个输入字段,用户可以输入他们的猜测,然后点击"提交"。如果他们的回答是正确的,那么它将会闪现"正确"。如果答案错误,它将闪烁再试一次。我的问题是如何将总变量传递给Submit,这样我才能成功创建if else语句?

所以这里是Play按钮Action的结束代码,它完美地运行

let total = firstRandomNumber + secondRandomNumber

以下是提交按钮的代码,它给出了一个错误

@IBAction func submit(sender: UIButton) {
    correct.hidden = (true)
    tryagain.hidden = (true)

    let guess = Double(text.text!)

    if guess = total {
        correct.hidden = (false)

}

我得到的错误是"未定义的变量总数"

1 个答案:

答案 0 :(得分:0)

因此,变量不会是PASSEDSubmit(),因为它是按钮调用的函数。按钮可以粗略地处理您的两个变量。相反,您希望拥有两个全局变量(在本例中为两个随机数)并在Submit中请求它们。这些变量是在任何函数之外创建的,并在需要设置时设置。因此,让我们看看您是如何使用代码执行此操作的:

// Two random numbers (global)
var a: Int?
var b: Int?

func generateRandomNumber() {
    a = // assign a to the number generator value
    b = // same as above
}

func submit() { // your button call
    if let userGuess = text.text { // do if let instead of ! it's safer
        let total = a + b

        if userGuess == total { // our check remember == is different from = 
            correctView.hidden = false
        } else { // if it's wrong show this view
            tryAgainView.hidden = false
        } 
    }
}

显然有一大堆缺失,但你可以得到主要的想法。如果我能回答这个方法,请告诉我。