所以我一直在努力學習之後,迅速清理和我所遇到的問題,並已經讓我堅持了一段時間。我使用seques將第一個控制器的數據傳遞給第二個控制器。順利通過Segue公司不斷變化的負載
當我打印變量的onLoad它打印出來傳遞正確的價值觀,但是在我執行其他功能(點擊一個紅色按鈕)不會打印出傳遞的值,而是空值。
var Level = 0;
var userId: String = "";
var clanId: String = "";
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view.
print(userId); //prints 97
print(clanId); //prins 2
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
@IBAction func redButtonClick(sender: AnyObject) {
print(userId); //prints ""
print(clanId); //prins ""
}
正如你可以在代碼中看到它似乎有什麼東西很簡單,但很明顯,我很想念它是如何工作的onload事件後的變量包含沒有在其中。
謝謝大家的幫助!
------------------編輯----------------------
已更改值用戶id:字符串= 「測試」 更改的值clanId:字符串= 「測試」
現在打印出在有載功能
print(userId)
print(clanId)
results:
97
2
test
test
------------ ----加成-----------
@IBAction func loginButton(sender: AnyObject) {
self.performSegueWithIdentifier("dashboard", sender: self);
}
override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
if(segue.identifier == "dashboard")
{
let dutydash:dashboardController = segue.destinationViewController as! dashboardController;
dutydash.userId = self.userId;
dutydash.clanId = self.clanId;
}
}
,你試過沒有initializating帳戶及clanId? ('var userId:String!var clanId:String!')當點擊按鈕時,它們可能會重置爲其原始值? – kye
使我收到此這些變化後: 致命錯誤:意外發現零而展開的可選值 然後,如果我添加了一個?代替 !我得到的輸出92,2,零,零 – user5600884
請從第一控制器,當和大家分享一些代碼,你如何Segue公司到目的地 – AamirR