我在ViewDidLoad中生成了两个随机数。我要加上这两个数字,结果应在带有输入字段数据的按钮中检查。我的问题是我不知道如何将结果传输到函数CheckResultBtn中。现在无法识别结果。

这是我的代码,我非常感谢任何帮助

 class ViewController: UIViewController {



    @IBOutlet weak var lblRandomNumOne: UILabel!
    @IBOutlet weak var lblRandomNumTwo: UILabel!
    @IBOutlet weak var KidsField: UITextField!
    @IBOutlet weak var Showresult: UILabel!
    @IBOutlet weak var CheckResult: UIButton!

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


        let x = Int.random(in: 0 ..< 10)
        lblRandomNumOne.text = String(x);


        let y = Int.random(in: 0 ..< 10)
        lblRandomNumTwo.text = String(y);

        let result = x + y;
        CheckResultBtn(result) //not sure about this


       }


    @IBAction func CheckResultBtn(_ sender: Any)
    {

        if (KidsField != nil)
        {
            let kidsresult = Int(KidsField.text!) ;

            if (result == kidsresult)
            {

                Showresult.text = "Bravo";

            }
            else
            {
                Showresult.text = "Try Again!"
            }

        }
    }



}

最佳答案

创建一个新函数而不是使用action方法
像这样 :

func CheckResultBtn(_ result : Int) {

        if (KidsField != nil)
        {
            let kidsresult = Int(KidsField.text!) ;

            if (result == kidsresult)
            {

                Showresult.text = "Bravo";

            }
            else
            {
                Showresult.text = "Try Again!"
            }

        }
    }


或创建一个变量

var result : Int?


赋值
        结果= x + y;

并在动作方法中使用

var result : Int?
override func viewDidLoad() {
    super.viewDidLoad()

    let x = Int.random(in: 0 ..< 10)
    lblRandomNumOne.text = String(x);


    let y = Int.random(in: 0 ..< 10)
    lblRandomNumTwo.text = String(y);

    result = x + y;
}


@IBAction func CheckResultBtn(_ sender: Any) {
    if (KidsField != nil)
    {
        let kidsresult = Int(KidsField.text!) ;

        if (result == kidsresult)
        {

            Showresult.text = "Bravo";

        }
        else
        {
            Showresult.text = "Try Again!"
        }

    }
}

关于ios - 如何将数据从ViewDidLoad传递到按钮的功能,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/57042470/

10-13 04:24