簡體   English   中英

在具有委托的視圖控制器之間傳遞多個值

[英]Pass several values between view controllers with delegates

我已經成功地在具有委托功能的視圖控制器之間傳遞了一塊數據(一個String變量,一個Int變量等)。 但是,我還沒有設法通過委托函數傳遞各種數據。

我收到以下錯誤:

*** Terminating app due to uncaught exception 'NSUnknownKeyException', reason: '[<UIViewController 0x7faea770db60> setValue:forUndefinedKey:]: this class is not key value coding-compliant for the key receivingAmountLabel.'

如果我刪除receingAmountLabel ,則錯誤將轉到另一個UI元素。 如果刪除該元素,它將繼續執行另一個操作。

所有UI元素均已連接。 相關的代碼如下:

FirstVC.swift類FirstVC:UIViewController,DataSentDelegateMax {

@IBOutlet weak var receivingStringLabel: UILabel!
@IBOutlet weak var receivingAmountLabel: UILabel!

func userDidEnterData(stringData: String, amountData: Int) {
    receivingStringLabel.text = stringData
    receivingAmountLabel.text = String(amountData)
}


override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
    if (segue.identifier == "showSecondVC") {
        let secondVC = segue.destination as! SecondVC
        secondVC.delegate = self
    }
}

SecondVC.swift

protocol DataSentDelegateMax {
    func userDidEnterData(stringData: String, amountData: Int)
}

    @IBOutlet weak var stringTF: UITextField!
    @IBOutlet weak var amountTF: UITextField!

    var delegate: DataSentDelegateMax? = nil

    @IBAction func sendButtonAction(_ sender: Any) {
        if delegate != nil {
            if (stringTF.text != nil) {
                if (Int(amountTF.text!) != nil) {
                    let stringData = stringTF.text
                    let amountData = Int(amountTF.text!)
                    delegate?.userDidEnterData(stringData: stringData!, amountData: amountData!)
                    dismiss(animated: true, completion: nil)
                }
            }
        }
    }

嘗試在委托中傳遞字典時遇到相同的問題。

使用下面的簡化代碼:

   if let del = delegate, let stringData = stringTF.text, let amountData = amountTF.text  {
        del.userDidEnterData(stringData: stringData, amountData: amountData)
        dismiss(animated: true, completion: nil)
    }

確保receiveAmountLabel插座已連接到FirstVC

暫無
暫無

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

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