GOODDUDE
@GOODDUDE
Swift Developer

Как достать текст с textField если оно относится к tableViewCell?

У меня есть файл который подключен к VC, в этом VC есть tableView. В tableView выводится в клетку имя игрока и очки.

Выглядит это так 4b3d4d8cf6a7428ab6586f052712dfc2.png

И мне нужно чтобы при нажатии на финиш сохраняло все инпуты в массив.
Вот мой код с VC
public func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
        let cell = tableView.dequeueReusableCell(withIdentifier: "InputScore") as! InputScoreTableViewCell
        cell.textLabel?.text = usersIn[indexPath.row]
        cell.configure(text: 100, placeholder: "Score")
        return cell
    }
    public func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
        return usersIn.count
    }


Вот код с tableViewCell
@IBOutlet weak var inputScore: UITextField!
    
    public func configure(text: Int?, placeholder: String) {
        inputScore.text = String(text!)
        inputScore.placeholder = placeholder
        
        inputScore.accessibilityValue = String(text!)
        inputScore.accessibilityLabel = placeholder
    }
  • Вопрос задан
  • 615 просмотров
Пригласить эксперта
Ответы на вопрос 2
@freeg0r
.. some dude ..
сохраняйте изменения текста в какой нибудь временный collection и при нажатии на финиш фиксируйте изменения.
То есть cell должен транслировать эти изменения в Ваш VC, который записывает их в этот collection, скажем Dictionary с ключом Индекс ячейки, а значение - текст. При нажатии на финиш пробегайте по массиву данных ячеек и находите по индексу текст в вашем Dictionary.
Ответ написан
@AntonGorb
iOS Developer (Cherkassy)
var inputScoreArr: [String] = []
        
        func finish() {
            for row in 0...usersIn.count {
                let indexPath = IndexPath(row: row, section: 0)
                let cell = tableView.cellForRow(at: indexPath) as! InputScoreTableViewCell
                inputScoreArr.append(cell.inputScore.text)
            }
        }
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы