我一直在制作简单的GPA计算应用程序。它从许多文本字段中获取用户输入并进行计算并显示结果

@IBAction func CalculateGpa(sender: AnyObject){
//all the calculation happen here
//example
        let gpa:Float = TotalGiCi/TotalGi

}

我想把它传给我的标签。
所以我做了这样的编码
override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
        var ResultViewController : ViewControllerResult = segue.destinationViewController as! ViewControllerResult

        ResultViewController.GPAResultLabel = "\(gpa)"
    }

然后我得到了一个错误,说2ndViewController
我在这里能做什么?
我试着删除gpa并用2ndViewController替换它,因为sender是anyObject。那我就错了
Use of unresolved identifier gpa

最佳答案

var全局定义变量,因为用let声明的变量必须立即赋值。不能像在第一行那样简单地用let和no值定义变量。
如果您是在运行时修改值,而不是常量。因此,您需要一个变量,即使它的值只改变一次。

class viewcontroller:UIViewcontroller{

// Define  variable gpa here with its return type...
   var gpa:Float?

override func viewDidLoad() {
    super.viewDidLoad()
    //   relevant code
}

@IBAction func CalculateGpa(sender: AnyObject){
    gpa = TotalGiCi/TotalGi
}

// Data passing code

关于ios - 在两个View Controller Swift IOS之间传递数据,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/31353216/

10-10 20:15