簡體   English   中英

從另一個 tableviewcell 快速訪問一個 tableviewcell 中的文本字段值

[英]Swift access textfield value in one tableviewcell from another tableviewcell

我不確定這是否是一個奇怪的設置,但我有兩個自定義 tableView 單元格 -

  1. 手機手機
  2. 電子郵件單元格

在 PhoneCell 中,我有兩個文本字段,這些文本字段中有一些值。 在 EmailCell 中,我有一個 textField。

我現在需要在我的 EmailCell 中訪問 PhoneCell 中可用的這兩個 textField 的值。 而且,這個 PhoneCell 可以添加四次,即我可以添加四個電話號碼

有可能嗎,我該如何實現?

最終,我試圖在下面做 -

  1. 獲取 PhoneCell 中的 textField 值(最多 4 個數字)到 EmailCell
  2. 對於 EmailCell ( saveContactDataClicked ) 中的按鈕操作,我需要使用 phoneCell 文本字段數據和 emailCell 文本字段數據作為 POST 請求進行服務調用。

手機手機

class PhoneCell: ProfileCell {

    @IBOutlet weak var countryCode: UITextField!

    @IBOutlet weak var addPhoneButton: UIButton!
    @IBOutlet weak var teleNumber: UITextField! 

override func configure(withUser user: UserData, language: String, indexPath: NSIndexPath) {
    super.configure(withUser: user, language: language, indexPath: indexPath)

    if user.phones?.count == 0 {
        self.countryCode.text = ""
        self.teleNumber.text = ""
    }

    else {
        if let userPhoneInfo = user.phones {

            self.countryCode.text = userPhoneInfo[indexPath.row].country
            self.teleNumber.text = userPhoneInfo[indexPath.row].number

        }
    }
}


}

我正在從EmailCell嘗試這樣,但無法在 phoneCell 中獲取 textField 值

class EmailCell: ProfileCell {

    @IBOutlet weak var saveButton: UIButton!
    @IBOutlet weak var emailLabel: UILabel!

    @IBOutlet weak var emailText: UITextField!

    @IBOutlet weak var cautionLabel: UILabel!        

    @IBOutlet weak var cautionTextView: UITextView!       

    @IBAction func saveContactDataClicked(sender: AnyObject) {

        let phoneCell = PhoneCell()

        let phoneCode = phoneCell.countryCode.text
        let phoneNumber = phoneCell.teleNumber.text

        let data = ContactInfoData(phoneCode: phoneCode!,
                                   phoneNumber: phoneNumber!,
                                   emailAddress: emailText.text!)

        delegate?.saveEdits(forContactInfoCell: self, withData: data)
    }

    override func configure(withUser user: UserData, language: String, indexPath: NSIndexPath) {
        super.configure(withUser: user, language: language, indexPath: indexPath)

        emailText.text = user.email

    }

首先,您應該在emailCell中聲明您的phoneViewController ,然后您可以在phoneViewContrller訪問它的值。 您不應該在customCell類中執行這些操作。 是為了看,而不是控制事情。

phoneViewController創建cellForRowAt indexPath函數並像這樣聲明 2 個單元格:

let phoneCell: phoneCell = tableView.dequeueReusableCell(withIdentifier: "phoneCell") as! PhoneCell
let emailCell: emailCell = tableView.dequeueReusableCell(withIdentifier: "emailCell") as! EmailCell

現在你可以像這樣訪問你的 textField 值:

let phoneCode = emailCell.countryCode.text
let phoneNumber = emailCell.teleNumber.text

你也可以倒過來做。 我希望你明白這一點。

您還可以通過為每個文本字段分配標簽來獲取文本字段的值。

if let txtField1 = self.view.viewWithTag(someTag) as? UITextField {

        print(txtField1.text!)

}

暫無
暫無

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

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