Обновите ваш код следующим образом в вашем контроллере представления.
Назначьте делегирование себя текстового поля ViewController в cellForRowAt
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let customCell = tableView.dequeueReusableCell(withIdentifier: "CustomCell", for: indexPath) as! CustomCell
customCell.input1.delegate = self
customCell.input2.delegate = self
return customCell
}
Теперь реализован делегат текстового поля в вашем контроллере представления.
func textFieldDidEndEditing(_ textField: UITextField) {
guard let jobTaskCell = textField.superview?.superview as? CustomCell else {
return
}
if textField == jobTaskCell.input1 {
// Get text from textfield and store in array
} else if textField == jobTaskCell.input2 {
// Get text from textfield and store in array
}
}
Примечание: Следующий код зависит от того, как разместить текстовое поле в вашей ячейке.Поэтому убедитесь, что вам нужно проверить это рекурсивно, добавив и удалив superView
guard let jobTaskCell = textField.superview?.superview as? CustomCell else {
return
}
Это просто означает, что только для текстового поля внутри ячейки табличного представления без какого-либо дополнительного представления:
textField.superview = contentView TableViewCell
textField.superview? .Superview = TableViewCell
Надеюсь, это исправит вашвыпуск.