[英]Swift: change a variable in an other swift-file? No change?
我在2个不同的Swift文件(UIViewController)中有2个类。
在第一类中,我声明了一个var:
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-var。 但是那里总是停留在“ 0”
怎么了?!
谢谢!!!
您的代码HomeScreen().Score++
正在创建一个新实例,并增加该新实例的score变量,然后该实例被丢弃。
您需要参考所使用的实际HomeScreen实例。 我建议在View Controller之间传递数据作为几种实现方法的参考。
这个:
@IBAction func ButtonPressed(sender: AnyObject) {
HomeScreen().Score++
}
您正在创建HomeScreen
的新实例 ,将其值递增,然后在方法结束时超出范围,因此所有更改都将丢失。
您应该改为在已初始化的对象上更改值,例如:
@IBAction func ButtonPressed(sender: AnyObject) {
// homeScreen is a reference to an already existing local variable
homeScreen.Score++
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.