У меня есть View Controller "VCInicio", который имеет TableView в своем View, ячейки для этого TableView имеют формат .xib, у ячеек есть собственный класс с именем "CustomiseTableViewCell", внутри которого у меня есть логика, которая получаети печатать строку (номер телефона) каждый раз, когда я нажимаю на RadioButton, он печатает свой номер телефона, я могу напечатать значение (из класса CustomiseTableViewCell) и увидеть значение на консоли, но мне нужно отправить это значение обратнок "VCInicio", чтобы я мог манипулировать им из этого контроллера.Я видел много примеров, которые предлагают использовать протоколы, но я не смог заставить их работать.
![iPhone](https://i.imgur.com/dRz8hnF.png)
РЕДАКТИРОВАТЬ : из-заструктура, которую я использую, я не могу работать с didSelectRowAt , поэтому я работаю с выделением переключателя вместо выделения ячейки.
ЧтоИсправлена ошибка:
" CustomiseTableViewCellDelegate " Настольный класс TableView (дочерний класс)
//Protocol Implementation
protocol CustomiseTableViewCellDelegate {
func onPhoneNumberClicked(_ cell: CustomiseTableViewCell, phoneNumber: String?)
}
class CustomiseTableViewCell: UITableViewCell {
var delegate: CustomiseTableViewCellDelegate?
var phone: String?
override func awakeFromNib() {
super.awakeFromNib()
...
}
//Here I get and send the phoneNumber
@objc func radioButtonTapped(_ radioButton: UIButton) {
...
phone = itemLabel.text!
self.delegate?.onPhoneNumberClicked(self, phoneNumber: phone!)
...
}
}
" VCInicio " Контроллер представления
class VCInicio: UIViewController, UITableViewDelegate, UITableViewDataSource, CustomiseTableViewCellDelegate {
func onPhoneNumberClicked(_ cell: CustomiseTableViewCell, phoneNumber: String?) {
//Here I print the phoneNumber
print("From VCInicio", phoneNumber)
}
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
var cell = tableView.dequeueReusableCell(withIdentifier: "phoneCell", for: indexPath) as! CustomiseTableViewCell
cell.delegate = self
...
//cell data config
...
return cell
}
}