Вариант 1:
Это соответствует вашей реализации
Присвойте индекс ячейки txtDetails.tag
при создании строки ячейки (cellForRowAtIndexPath
).
Это поможет вам в определении строки вашего текстового поля
txtDetails.tag = indexPath.row
Реализация делегата UITextField textFieldDidEndEditing
ИЛИ shouldChangeCharactersIn
до
- Получить значение поля.
И индекс строки
arrProfile [textField.tag] = "новое значение"
Вариант 2:
Определение протокола для получения обновлений текста в ячейке
protocol MYCellDelegate: class {
textFieldDidChange(row: Int, string: String)
}
class MyCell: UITableViewCell {
weak var delegate: MYCellDelegate?
var row: Int
}
В вашем cellForRowAtIndexPath выполните следующее
cell.delegate = self
cell.row = indexPath.row
Реализация UITextFieldDelegate в ячейке (textFieldDidEndEditing
ИЛИ shouldChangeCharactersIn
)
и вызов textFieldDidChange(row: Int, string: String)
с соответствующими значениями
Не забудьте удалить следующие строки из cellForRowAtIndexPath
[self textFieldShouldReturn:cell.txtDetails];
[self textFieldShouldBeginEditing:cell.txtDetails];