2015-06-30 4 views
2

После прибегая к помощи этого вопроса я сумел сделать этотКак получить все значения из всех текстовых полей

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath 
    { 
    NSString *cellIdentifier = @"InsertMarksCell"; 
    SaveAllExamMarksForAllStudentsTableViewCell *myCell = [tableView dequeueReusableCellWithIdentifier:cellIdentifier]; 

    StudentPersonalInfo *newStudentName = feedItemsNow[indexPath.row]; 

    myCell.txtStudentMark.text = @"hello"; 
    myCell.txtStudentMark.delegate = self; 
    myCell.txtStudentMark.tag = indexPath.row; 

    return myCell; 
} 

этот код я это устанавливает текстовое поле «txtStudentMark» делегат и устанавливает это тег ...

-(void) textFieldDidEndEditing: (UITextField *) textField 
{ 
    NSString *text = [(UITextField *)[self.view viewWithTag:55] text]; 
    NSLog(@"%@",text); 
} 

я получаю нулевое значение с помощью функции NSLog

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

Из того, что я понял, мне нужно установить тег для textField и установить его как делегат, после чего я могу вызвать текстовое поле тегом, чтобы получить текст в нем.

Как я могу сделать эту работу?

+1

Если 'Text' является' nil' тогда это означает, что 'self.view' является' nil', или 'self.view' не имеет subview с тегом 55. – rmaddy

+0

У меня есть тег из 55 ... и я уже заполнил текстовые поля« привет » », только что отредактировал код и добавил его, все текстовые поля имеют« привет »текст. текстовые поля объявляются в @interface SaveAllExamMarksForAllStudentsTableViewCell: UITableViewCell как я могу назвать текстовое поле? – jack

+0

textfield - это подвид таблицы tableViewCell? правильно ? – jack

ответ

2

Почему бы вам не использовать

-(void) textFieldDidEndEditing: (UITextField *) textField 
{ 
    NSString *text = [textField text]; 
    NSLog(@"%@",text); 
} 

?

Ваша проблема заключается в том, что вы добавляете текстовое поле в ячейку, но запрашиваете представление для этого тега.

EDIT:

, чтобы получить текстовое поле из Tableview

-(void) textFieldDidEndEditing: (UITextField *) textField 
{ 
    UITableViewCell *cell = [self.view.tableView cellForRowAtIndexPath:[NSIndexPath indexPathForRow:55 inSection:0]]; 

    NSString *text = [(UITextField *)[cell.contentView viewWithTag:55] text]; 
    NSLog(@"%@",text); 
} 
+0

Nice, Работает и печатает все значения после редактирования ... Однако могу ли я называть текстовое поле TAG? – jack

+0

UITableViewCell * cell = [self.view.tableView cellForRowAtIndexPath: [NSIndexPath indexPathForRow: 55 inSection: 0]]; на «self.view.tableView» я не могу установить его на мой Tableview self.view.StudentsNameIDMarksTableView ошибки: собственности StudentsNameIDMarksTableView не найден на тип объекта UIView – jack

+0

@jack, только через ваш Tableview, потому что ваш TextField размещается внутри представления содержимого вашей ячейки. См. Мое редактирование. Просмотр иерархии выглядит как uitableview - uitableviewcell - contentview - your_textfield. Я могу пропустить некоторые временные взгляды, но порядок такой же, как я упомянул – Doro

0

@Doro спасибо за помощь.

, так как проблема решена, это ответ, который работал хорошо для меня

, чтобы получить номер строки и данные в текстовое поле с помощью TAG

-(void) textFieldDidEndEditing: (UITextField *) textField 
{ 
    // here get the tag number which is the row number 
    NSInteger *rowNumberWithout200 = (long)textField.tag; 
    NSString *myRow = [NSString stringWithFormat: @"%ld", rowNumberWithout200]; 
    NSLog(@"row %@",myRow); 

    // get the text in the cell with the required tag... 
    UITableViewCell* myCell = (UITableViewCell*)textField.superview; 
    NSString *StudentMark = [(UITextField *)[myCell viewWithTag:textField.tag] text]; 
    NSLog(@"mark %@",StudentMark); 
} 
Смежные вопросы