Извлечение данных из таблицы в iphone - PullRequest
1 голос
/ 20 января 2012

У меня есть таблица, в которой каждая строка содержит текстовое поле. После ввода текста во всех строках, являющихся текстовыми полями, я хочу получить данные в массив. Может ли кто-нибудь подсказать мне идею извлечения данных из каждой строки, которая такое текстовые поля?

Ответы [ 2 ]

1 голос
/ 20 января 2012

У вас есть детали, например, в какой строке есть текстовые поля, а какие нет.

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

    static NSString *CellIdentifierNormal = @"Cell";
    static NSString *CellIdentifierTF = @"Cell";
    UITableViewCell *cell;
    if(indexPath.row %2 == 0){ //Example
        cell = (UITableViewCell *)[tableView dequeueReusableCellWithIdentifier:CellIdentifierNormal];    
        if (cell == nil) {
            cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:CellIdentifierNormal] autorelease];
    }
    } else {
        cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:CellIdentifierTF] autorelease];    
TF *tf = [[TF alloc] init];
tf.tag = 10;
    }

В текстовом полерегистр строк, не следует использовать dequeueReusableCellWithIdentifier, он повторно использует существующие ячейки, так что данные текстовых полей могут быть повреждены [Это произойдет, когда размер строк данных превышает размер таблицы - высота]

Всякий раз, когда выхотите собрать данные из TF

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

Доступ к ячейке и TF из ячейки с помощьюномер тега [10] из TF получить текст

1 голос
/ 20 января 2012

Я не могу тебе поверить. Плохая грамматика и никаких исследований.

Чтобы получить массив всех текстовых полей, я бы сделал:

NSArray *subviews = self.view.subviews;
NSMutableArray *textFelds = [[NSMutableArray alloc]init];
NSMutableArray *indexPaths = [[NSMutableArray alloc]init];


NSObject *obj;

для (obj в подпредставлениях) { if ([класс obj] == [класс UITextField]) { [textFields addObject: obj]; CGPoint location = obj.center; NSIndexPath * indexPath = [self.tableView indexPathForRowAtPoint: location]; [indexPaths addObject: indexPath]; } }

Сначала он получает все подпредставления основного представления, а затем определяет, являются ли они текстовыми полями. Если они являются textFields, он добавляет это к массиву и также получает indexPath.

Надеюсь, я ответил на ваш вопрос

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...