Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/99.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/variables/2.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
Ios Swift:是否更改其他Swift文件中的变量?没有变化?_Ios_Variables_Swift_Uiviewcontroller - Fatal编程技术网

Ios Swift:是否更改其他Swift文件中的变量?没有变化?

Ios Swift:是否更改其他Swift文件中的变量?没有变化?,ios,variables,swift,uiviewcontroller,Ios,Variables,Swift,Uiviewcontroller,我在2个不同的Swift文件(UIViewController)中有2个类 在第一个类中,我声明了一个变量: class HomeScreen: UIViewController { var Score = 0 let blackColor = UIColor.blackColor() @IBOutlet weak var ScoreLabel: UILabel! override func viewDidLoad() { super.viewDidLoad() ScoreLabe

我在2个不同的Swift文件(UIViewController)中有2个类

在第一个类中,我声明了一个变量:

class HomeScreen: UIViewController {

var Score = 0
let blackColor = UIColor.blackColor()

@IBOutlet weak var ScoreLabel: UILabel!

override func viewDidLoad() {
    super.viewDidLoad()
ScoreLabel.text = "Score: \(Score)"

}}
在第二个类/文件中,我想增加这个变量:

class SecondVC: UIViewController {

@IBAction func ButtonPressed(sender: AnyObject) {

    HomeScreen().Score++
}}
如您所见,我想在标签中显示Score变量。 但总有“0”

怎么了

谢谢

这是:

@IBAction func ButtonPressed(sender: AnyObject) {

    HomeScreen().Score++
}
您正在创建
主屏幕的新实例,增加其值,然后在方法结束时,它超出范围,因此所有更改都将丢失

您应该改为更改初始化对象上的值,例如:

@IBAction func ButtonPressed(sender: AnyObject) {

    // homeScreen is a reference to an already existing local variable
    homeScreen.Score++

}
您的代码
HomeScreen().Score++
正在创建一个新实例并递增该新实例的Score变量,然后该实例将被丢弃


您需要引用正在使用的实际主屏幕实例。我推荐几种方法作为参考。

询问
主屏幕的来源。这是重点;OP需要创建它,并将引用传递给这个VC,以便可以使用它。是的,这就完成了答案。