Получить значения текстовых полей в динамическом табличном представлении
У меня есть динамическое табличное представление, которое имеет 5 ячеек-прототипов, внутри каждой ячейки у меня есть 6 текстовых полей. Я отмечаю текстовые поля, но у меня возникают проблемы с пониманием, как я могу получить значения из всех них в "textFieldDidEndEditing
". В моем коде у меня есть это:
-(void) textFieldDidEndEditing:(UITextField *)textField
{
NSMutableArray *cellOneContentSave = [[NSMutableArray alloc] init];
NSString *cellOneTexfieldOneTxt;
if (textField == [self.view viewWithTag:1503])
{
cellOneTexfield1Txt = textField.text;
[cellOneContentSave addObject:cellOneTexfieldOneTxt];
}
Проблема 1: НО! это только дает мне значение из одного текстового поля в первой ячейке... Должен ли я использовать переключатель для каждой ячейки и текстового поля?.
Проблема 2: Я сказал, что это динамическое представление таблицы, поэтому пользователь может вставлять строки новостей (для каждого раздела), нажимая зеленую кнопку +, которая появляется с левой стороны, когда он вводит стиль редактирования коммита... и когда он входит, должен ли теги полей newtex имеют разные теги? С одной стороны, я думаю, что нет, потому что это новые текстовые поля, НО другие indepaxth.row.... но с другой стороны, я не знаю, требует ли контроллер новых тэгов...
1 ответ
-(void) textFieldDidEndEditing:(UITextField *)textField
{
// assuming your text field is embedded directly into the table view
// cell and not into any other subview of the table cell
UITableViewCell * parentView = (UITableViewCell *)[textField superview];
if(parentView)
{
NSMutableArray *cellOneContentSave = [[NSMutableArray alloc] init];
NSString *cellOneTexfieldOneTxt;
NSArray * allSubviews = [parentView subviews];
for(UIView * oneSubview in allSubviews)
{
// get only the text fields
if([oneSubview isKindOfClass: [UITextField class]])
{
UITextField * oneTextField = (UITextField *) oneSubview;
if(oneTextField.text)
{
[cellOneContentSave addObject: oneTextField.text];
} else {
// if nothing is in the text field, should
// we simply add the empty string to the array?
[cellOneContentSave addObject: @""];
}
}
}
}
// don't forget to actually *DO* something with your mutable array
// (and release it, in case you're not using ARC), before this method
// returns.
}