2015-03-05 1 views
0

У меня есть пользовательская ячейка, которую я создал в раскадровке, которая связана с классом customCell. В нем у меня есть UITextFields, которые связаны с customCell.h. У textField есть разные теги для них.Доступ к UITextFields из класса пользовательских ячеек класса VCs

Тогда есть класс под названием mainVC. Этот класс является классом viewController

Как я могу получить текст textFields в классе mainVC?

Самый простой, но неправильно способ сделать это, как так:

CustomCell *myCell = [[CustomCell alloc] init]; 

Проблема делать это, это, это создаст новыйcustomCell, и поэтому textFields текст будет null.

+0

К сожалению, я имел в виду 'textFields' не' textView' –

ответ

0

У вас нет доступа к текстовому полю для получения текста, вы реализуете один из методов UITextFieldDelegate (или UITextView, это не ясно, какие у вас есть) в вашем контроллере вида. В cellForRowAtIndexPath установите контроллер (self) как делегат текстового поля. Вероятно, вы хотите реализовать textFieldDidEndEditing: и textFieldShouldReturn :. После отклонения клавиатуры будет вызываться textFieldDidEndEditing: и вы можете получить текст внутри этого метода. Если вам нужно, чтобы indexPath ячейки содержал текстовое поле, вы можете использовать метод представления таблицы, indexPathForRowAtPoint :, передавая начало или центр текстового поля для аргумента точки.

+0

'textFieldDidEnd ...' должен быть в 'mainVC', а не' customCell', писать? Кроме того, вы говорите, что я должен сделать инструкцию if для каждого текстового поля, а затем назначить правильную строку? Если хотите, чтобы textField вызывал: 'nameTextField', я должен создать оператор if, проверяя, был ли это textField, с которым пользователь вводил текст, а затем присваивал его строке:' nameString'.? –

+0

@MikeRally, да, я сказал, что метод делегата должен находиться в контроллере. Если у вас есть несколько текстовых полей на ячейку, тогда вам нужно, чтобы инструкции (или оператор switch) отличались от текстовых полей. – rdelmar

+0

Должен ли я устанавливать каждый textField в качестве делегата в 'celllForRow ...'? –