在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”的视频,我让它开始工作了。谢谢你的帮助!