[英]Swift access textfield value in one tableviewcell from another tableviewcell
我不確定這是否是一個奇怪的設置,但我有兩個自定義 tableView 單元格 -
在 PhoneCell 中,我有兩個文本字段,這些文本字段中有一些值。 在 EmailCell 中,我有一個 textField。
我現在需要在我的 EmailCell 中訪問 PhoneCell 中可用的這兩個 textField 的值。 而且,這個 PhoneCell 可以添加四次,即我可以添加四個電話號碼
有可能嗎,我該如何實現?
最終,我試圖在下面做 -
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.