我试图按下一个按钮时将值赋给变量,然后将其发送给我的第二个视图控制器。无法将变量传递给第二个视图控制器
我无法从我的第一个viewcontroller(FirstViewController.swift)传递一个变量(int)到我的secondcontroller(ViewController.swift)。
我的切入点是FirstViewController.swift
这是我的FirstViewController.swift代码:
import UIKit
var language:Int = 0
class FirstViewController: UIViewController {
@IBAction func dutch(sender: AnyObject) {
language = 1
println(language)//check in console
}
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view.
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
var soundsVC = segue.destinationViewController as! ViewController
soundsVC.languageSelected = language
}
当按下按钮@IBAction FUNC荷兰被激活,已经发生后,应该改变语言的为1的值
import UIKit
import AVFoundation
class ViewController: UIViewController {
var languageSelected:Int = 0
@IBAction func controleFunc(sender: AnyObject) {
println(languageSelected)
println(language)
}
override func viewDidLoad() {
super.viewDidLoad()
self.view.backgroundColor = UIColor(patternImage: UIImage(named: "background.jpg")!)
// Do any additional setup after loading the view, typically from a nib.
println(languageSelected)
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
}
我的输出是:
0 //languageSelected
1 //language
0 //languageSelected if the controle function is activated (controleFunc)
1 //language if the controle function is activated (controleFunc)
我刚开始学习Swift,所以我不知道为什么languageSelected不会采用语言的价值。是因为我声明了ViewController.swift顶部的languageSelected:Int = 0吗?我试图将其改为languageSelected:Int = language,但不幸的是我得到了相同的结果。
谢谢! 塞泽尔
所以你真的有var语言__outside__ FirstViewController类,或者是一个错字? – nPn