Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在swift中从一个类到另一个类访问变量_Swift - Fatal编程技术网

在swift中从一个类到另一个类访问变量

在swift中从一个类到另一个类访问变量,swift,Swift,在应用程序中,用户将信息作为整数输入两个不同的文本字段。在一个操作按钮之后,用户现在可以访问另外两个文本字段,用户再次将数据输入为整数。现在,在点击一个按钮之后,我想要一个标签的文本来显示前面两种情况下输入的信息 但是在我的代码中,我无法访问变量(来自用户输入的信息),因为这个标签的文本在一个新类中,而用户输入变量存储在另外两个类中) 如何在标签所在的新类中访问这些变量 我的代码示例如下: @IBOutlet var nextStagetwo: UILabel! override func

在应用程序中,用户将信息作为整数输入两个不同的文本字段。在一个操作按钮之后,用户现在可以访问另外两个文本字段,用户再次将数据输入为整数。现在,在点击一个按钮之后,我想要一个标签的文本来显示前面两种情况下输入的信息

但是在我的代码中,我无法访问变量(来自用户输入的信息),因为这个标签的文本在一个新类中,而用户输入变量存储在另外两个类中)

如何在标签所在的新类中访问这些变量

我的代码示例如下:

 @IBOutlet var nextStagetwo: UILabel!

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

@IBAction func check(sender: AnyObject) {

    var strValue = boxShots.text
    var floatValue = Double((strValue as! NSString).integerValue)
    var strValue2 = boxMakes.text
    var floatValue2 = Double((strValue2 as! NSString).integerValue)
    var stage = "stage 2"
    var procent = floatValue2 / floatValue * 100
enter code here
现在,我想访问此类中的变量
procent

class stagethree: UIViewController {

    @IBOutlet var stats: UILabel!

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

    @IBAction func check(sender: AnyObject) {

 // this is where I want to write:  stats.text = "\(procent)"
// however I can't, because it doesn't register the variable "procent" because it is in another class.

您可以创建一个全局存储来存储您的值

struct Store {
    static var valueOne:Int? 
}
然后在视图控制器中可以设置这些值

Store.valueOne = 1
另一个选项是将这些整数发送到视图中的下一个视图控制器

override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
    if let destinationController = segue.destinationViewController as? SecondController {
        destinationController.valueOne = valueOne
    }
}

添加代码,你现在已经能够帮助你一个具体的example@alex_p现在更新了代码。您介意详细介绍一下全球商店吗?我不确定我是否完全理解它。例如Store.valueOne=1也许我只是个新手,对不起!所以基本上就是结构中的静态值。您可以设置要从第一个视图控制器保存的任何值,如
Store.valueOne=[值]
,然后在第三个视图控制器中显示该值<代码>var storedValue=Store.valueOne。只需创建一个新文件,并将前3行代码放入该文件。然后,您可以在所有视图控制器中保存并从中获取值。我想我现在理解了,但是如何才能将其获取到我的新类中?当我只在第一个类中存储一个正则变量时,情况不是完全一样吗?然后就不能设置到下一个了?(我一定是错过了眼前的整个概念,对此我很抱歉,先生!)感谢您的帮助!我看了一段解释“prepareForSegue”的视频,我让它开始工作了。谢谢你的帮助!