Прежде всего, вы должны понимать, что UITableViewCell и UITextField являются просто представлениями, они не должны хранить данные, они просто должны отображать их и позволять пользователю взаимодействовать с ними: данные должны сохраняться в контроллере представления таблицы.
Вы должны помнить, что UITableView позволяет повторно использовать экземпляры UITableViewCell с целью повышения производительности: то, что отображается на экране, фактически является единственными подпредставлениями, которые UITableView хранит там. Это означает, что вы будете повторно использовать одну ячейку, в которой уже есть текстовое поле, и будете устанавливать текст в этом поле напрямую. Когда пользователь нажмет на поле, он отредактирует его, и вам нужно будет вернуть значение из него, когда пользователь закончит работу.
Самый быстрый способ - использовать то, что предлагает Сатья, то есть построить нормальный UITableViewCell и вставить в UITextField (нет необходимости в классе CustomTextField ...). Этот тег позволит вам легко вернуться к текстовому полю ... Но вам придется настроить текстовое поле таким образом, чтобы оно работало правильно при изменении размера таблицы или при изменении метки в той же ячейке.
Самый простой способ сделать это - создать подкласс UITableViewCell и настроить макет вашей метки и текстового поля, и вы можете предоставить текстовое поле как свойство пользовательского подкласса.