我不确定这是否是一个奇怪的设置,但我有两个自定义的tableView单元格 -
在PhoneCell中,我有两个文本字段,其中包含一些textFields中的值。在EmailCell中,我有一个textField。
我现在需要在我的EmailCell中访问PhoneCell中可用的那两个textField的值。而且,这个PhoneCell可以添加四次,即我可以添加四个电话号码
是否有可能,我该如何实现?
最终,我想在下面做 -
saveContactDataClicked
)中的按钮操作,我需要使用phoneCell文本字段数据和emailCell textField数据作为POST请求进行服务调用。 PhoneCell
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
}
答案 0 :(得分:1)
首先,您应该在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
你也可以颠倒过来。我希望你明白这一点。
答案 1 :(得分:0)
您也可以通过为每个文本字段分配标记来获取textyfield的值。
如果让txtField1 = self.view.viewWithTag(someTag)为? UITextField {
print(txtField1.text!)
}