我試圖按下一個按鈕時將值賦給變量,然後將其發送給我的第二個視圖控制器。無法將變量傳遞給第二個視圖控制器
我無法從我的第一個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