簡體   English   中英

在Swift中頁面視圖控制器內的視圖控制器之間傳遞數據

[英]Passing data between view controllers inside page view controllers in Swift

抱歉,如果有人問過這個特殊問題,我在其他線程上遵循了答案,但是似乎都沒有用,但是我剛剛開始學習Swift,所以對我來說所有這些都是很新的。

因此,我在兩個View Controller中都有一個文本字段,我希望第三個View Control在按下按鈕時根據來自其他兩個控制器的輸入顯示結果。

我按照本教程進行操作 ,並像我之前所說的那樣放置了文本字段,標簽和按鈕。 我將代碼(您可以在下面看到)放置在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公司。

不要多次聲明相同的變量。 ab之前刪除let 您已經在全局中聲明ab ,然后嘗試在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!;
  1. 確保控制插座的設置正確。
  2. 在您的兩個變量中,a和b被重新聲明。只需如下更新代碼
 @IBAction func calculateButtonPressed(_ sender: UIButton) { self.a = aTextField.text! self.b = bTextField.text! } 

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM