繁体   English   中英

在两个View Controller Swift IOS之间传递数据

[英]Data passing between two View Controller Swift IOS

我一直在做简单的GPA计算应用程序。 并且它需要用户从许多文本字段中输入内容并进行计算并显示结果。 2ndViewController想在2ndViewController显示该结果

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

}

我想将该gpa传递给我的2ndViewController标签。 所以我做了这样的编码

override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
        var ResultViewController : ViewControllerResult = segue.destinationViewController as! ViewControllerResult

        ResultViewController.GPAResultLabel = "\(gpa)"
    }

然后我得到一个错误,说Use of unresolved identifier gpa

我在这里能做什么?

我尝试删除@IBAction func CalculateGpa(sender: AnyObject){并用override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {因为发件人是anyObject。 然后我有错误

unrecognized selector sent to instance

var全局定义变量,因为用let声明的变量必须立即分配一个值。 您不能像在第一行中那样简单地使用let和没有值来定义变量。

如果要在运行时修改值,则常量不是常量。 因此,即使变量的值仅更改一次,也需要一个变量。

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

全局变量是在任何函数,方法,闭包或类型上下文之外定义的变量。全局常量和变量始终是惰性计算的

请参考以下代码。我们在下面声明了这样的变量。

 class YourViewControllerName: UIViewController 
 {
   let gpa:Float = TotalGiCi/TotalGi
              //OR
   var gpa:Float = TotalGiCi/TotalGi
   @IBAction func CalculateGpa(sender: AnyObject)
   {
   //all the calculation happen here
   //example
   //Do your Calculation here
   }

   override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?)
   {          
      var ResultViewController : ViewControllerResult = segue.destinationViewController as! ViewControllerResult
      ResultViewController.GPAResultLabel = "\(gpa)"
   }
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM