2016-02-14 5 views
0

У меня есть tableView с 2 прототипами ячеек.Swift - Prototype Cell получить значение от TextField

Первая прототипная ячейка имеет TextField и кнопку справа. Предположим, что это «Cell1»

Вторая клетка Prototype имеет только ярлык. Скажем, это «CELL2»

Я просто хочу что-то в первую ячейку, а затем введите пластырем кнопку, чтобы:

1) Создать новый CELL2 прототип Cell Row

2) новый CELL2 Прототип Cell Row должен иметь метку со значением i, введенным на Cell1 TextField.

Таким образом, у меня мог бы быть список строк Cell2 с разными значениями TextField.

Я знаю, как достичь первого (новая строка создана), но не вторая.

Когда начинается переход, у меня есть только cell1 прототип, как эта фотография: Here segue starts

И когда я нажмите на кнопку +, у меня есть новый ряд Prototype «CELL2». Этот тип ячейки должен иметь метку текстового поля каждый раз. enter image description here

Как я могу использовать значение TextField каждый раз и передавать его на новый созданный ярлык Cell2 Row?

+0

Так сделать это. В чем вопрос? – matt

+0

Мой вопрос в том, что я не могу сделать второе, что я описываю. Есть идеи? – dejix

+0

Конечно, я знаю, как я это сделаю. Как вы это делаете? – matt

ответ

0

По всей вероятности, ваша трудность заключается лишь в том, что ваша модель данных слишком проста. Имейте в виду, что вся работа должна быть выполнена с помощью вашей реализации cellForRowAtIndexPath:, рассматривающей модель данных. Таким образом, модель данных должна знать две вещи для каждой строки:

  1. Это прототип 1 строки или прототипа 2 ряда?

  2. Что такое текстовое поле (если это прототип 1 строка) или метка (если это прототип 2 строки) для этой строки?

Учитывая структуру данных, которая несет эту информацию, достаточно ясно, как поступить:

  • как типы пользователей в текстовом поле, текстовое поле делегат должен ввести текст текстового поля в модель в этой строке.

  • Когда пользователь нажимает кнопку «Плюс», мы вычисляем, какая строка это и вставляет в модель данных, сразу после текущей строки, новую запись, помеченную как прототип 2 строки с тем же текстовым значением, что и текущий ряд. Затем мы вставляем строку в таблицу, так что наш cellForRowAtIndexPath: вызывается для новой строки.

Учитывая эти простые инструкции, это довольно легко построить рабочий пример рода вещи вы пытаетесь сделать:

enter image description here

+0

Добавлен скринкаст, показывающий, что мои инструкции действительно работают! :) – matt

Смежные вопросы