2017-06-14 110 views
0

如果有人問到這個問題,我在其他線程上跟蹤了答案,但沒有一個看起來可行,但我剛開始學習Swift,所以這一切都是對我來說很新。在Swift中在頁面視圖控制器內部的視圖控制器之間傳遞數據

因此,我在兩個視圖控制器中有一個文本字段,我希望第三個視圖控件顯示基於來自其他兩個控制器的輸入的結果,當我按下按鈕時。

我跟着this tutorial並放置文本字段,標籤和按鈕,就像我之前說過的。 我在ViewControl.swift中放置了我的代碼(您可以在下面看到)。

的問題是,當我嘗試運行它,我得到一個「主題1:EXC_BAD_INSTRUCTION(代碼= EXC_I386_INVOP,子碼=爲0x0)」中的最後兩行錯誤。

class ViewController: UIViewController { 

var a: String = "" 
var b: String = "" 

@IBOutlet weak var aTextField: UITextField! 
@IBOutlet weak var bTextField: UITextField! 
@IBOutlet weak var calculateButton: UIButton! 
@IBOutlet weak var resultLabel: UILabel! 

@IBAction func calculateButtonPressed(_ sender: UIButton) { 
    let a = aTextField.text!; 
    let b = bTextField.text!; 

我認爲錯誤是不是視圖之間傳遞數據(因爲之前我曾在同一視圖一切,它工作得很好),但因爲我只有一個ViewController.swift文件我不能」不知道如何使用Segue。

回答

0

不要多次聲明相同的變量。刪除let之前a & b。你已經宣佈a & b全局,然後試圖重新聲明這裏面IBAction

class ViewController: UIViewController { 

var a: String = "" 
var b: String = "" 

@IBOutlet weak var aTextField: UITextField! 
@IBOutlet weak var bTextField: UITextField! 
@IBOutlet weak var calculateButton: UIButton! 
@IBOutlet weak var resultLabel: UILabel! 

@IBAction func calculateButtonPressed(_ sender: UIButton) { 
    a = aTextField.text!; 
    b = bTextField.text!; 
+0

我刪除了讓你的代碼,但它仍然給出了同樣的錯誤,如果它可以幫助控制檯說:「致命錯誤:意外地發現零,同時展開一個可選值(lldb)「 –

+0

你從故事板連接了'IBOutlet'到'aTextField'&'bTexfield'嗎? – Bali

+0

是的!他們都連接到ViewController.swift –

0
  1. 確保您的控制網點是否正確設置好的。
  2. 在你的兩個變量& b的重新declared.Just更新像下面
@IBAction func calculateButtonPressed(_ sender: UIButton) { 
    self.a = aTextField.text! 
    self.b = bTextField.text! 
} 
+0

我像你所說的更新它,但它仍然給出相同的錯誤和崩潰。如果它有助於診斷問題,那麼控制檯會顯示「致命錯誤:在解包可選值(lldb)時意外發現零」。我已經對網點進行了三重檢查,他們似乎都能正常工作。如果我在同一個視圖控制器中的所有文本字段的按鈕,應用程序完美,但如果我移動他們,我得到這個錯誤。 –

相關問題