2014-12-17 3 views
0

У меня есть подкласс UITableViewCell, который загружает нить на родительском представлении ViewController viewDidLoad, где находится табличный вид. В этом UITableViewCell есть UITextView. Идея состоит в том, что пользователь вводит текст в этом текстовом элементе, а при нажатии кнопки он сохраняет этот текст (ответы на вопросник) в NSUserDefaults.Сохранять текст в UITextView внутри UITableViewCell

Моя проблема в том, что я не могу прочитать текст из текстовых просмотров. Когда пользователь вводит текст, а представление таблицы прокручивается вверх и вниз, я вижу, что текст сохраняется, поэтому он должен храниться в памяти где-то, это происходит в cellForRowAtIndexPath. Для сбора текста я называю этот же метод, но возвращенная ячейка равна нулю. Поэтому кажется, что текст сохраняется при прокрутке, но если метод называется программным, ячейка не возвращается. Я не уверен, как отслеживать этот текст, я также пробовал метод didEndDisplayingCell, но иногда его не вызывают, поэтому он не является надежным. регистрация

Nib:

UINib *nib = [UINib nibWithNibName:@"QuestionCell" bundle:nil]; 
[[self tableViewOutlet] registerNib:nib forCellReuseIdentifier:cellIdentifier]; 

cellForRowAtIndexPath:

QuestionCell *cell = [tableViewOutlet dequeueReusableCellWithIdentifier:cellIdentifier]; 
if (!cell.indexPath){ 
    cell.indexPath = indexPath;//Setup cell ... 

Попытка получить текст внутри TextView внутри клетки (возвращает NIL, если не виден):

QuestionCell *cell = (QuestionCell *)[tableViewOutlet cellForRowAtIndexPath:[NSIndexPath indexPathForRow:i inSection:0]]; 

ответ

0

You не должны полагаться на ваш рабочий стол, чтобы сохранить текстовые поля с введенным правильным текстом. Как только TableViewCell будет прокручиваться с экрана, он будет повторно использоваться TableView, и значение, которое пользователь ввел, скорее всего, будет перезаписано.

Вместо этого вы должны зарегистрировать ViewController как делегат UITextView и обновить объект данных DataView TableView при каждом нажатии клавиши. Затем вы сможете прочитать введенный пользователем текст с этого объекта источника данных, когда вам нужно.

+0

Текст присутствует при прокрутке, поэтому он сохраняет его –

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