Как читать данные из UITextField, расположенного в пользовательском UITableView - PullRequest
0 голосов
/ 21 февраля 2012

Прежде всего, я знаю, что есть еще несколько названий, которые выглядят одинаково.Я проверил их, но то, что я спрашиваю, является конкретной проблемой.

Что я хочу сделать: Создана таблица входа в систему, которая включает в себя электронную почту и пароль.UITextfields в UITableView.Просто хочу перенести эти данные в некоторые указатели переменных NSString для дальнейшего процесса.

У меня есть пользовательский класс ячеек с именем CustomCell, как показано ниже:

#import "CustomCell.h"
#import "QuartzCore/QuartzCore.h"

@implementation CustomCell
@synthesize textfield;

- (id)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier {
    self = [super initWithStyle:style reuseIdentifier:reuseIdentifier];
    if (self) {
        textfield = [[UITextField alloc] initWithFrame:CGRectMake(5, 7, 160, 20)];
        textfield.textColor = [UIColor blackColor];
        textfield.font = [UIFont systemFontOfSize:14];
        [self.contentView addSubview:textfield];
    }
    return self;
}

- (void)setSelected:(BOOL)selected animated:(BOOL)animated {
    [super setSelected:NO animated:NO];
    // Configure the view for the selected state.
}

- (void)dealloc {
    [super dealloc];
}
@end

И у меня есть ViewController, где я используюВ пользовательской таблице ниже вы можете увидеть мой метод tableView cellForRowAtIndex.

-(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{
    static NSString *CellIdentifier = @"Cell";
    [tableView.layer setCornerRadius:10.0];

    CustomCell *cell = (CustomCell *)[tableView dequeueReusableCellWithIdentifier:CellIdentifier];

    if (cell == nil) {

        cell = [[[CustomCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier] autorelease];}

        switch (indexPath.row) {
            case 0:
                cell.textfield.placeholder = @"Email";
                break;
            case 1:
                cell.textfield.placeholder = @"Password";
                cell.textfield.tag = 0;
                break;
    }

    return cell;
}

И, наконец, ниже в том же классе я пытаюсь прочитать электронную почту и пароль с

NSIndexPath *indexPath = [NSIndexPath indexPathForRow:1 inSection:0];
CustomCell *cell = [tableView cellForRowAtIndexPath:indexPath]; // ERROR!!!
NSString *userpassword = cell.textfield.text;

Ошибка: Неизвестный тип получателя tableView:

Внимание в той же строке:
ClassMethod + cellforrowatindexpath не найден, тип возвращаемого значения по умолчанию равен id.

Вы видели, кто яделать неправильно?

Ответы [ 3 ]

3 голосов
/ 26 декабря 2012
NSIndexPath *indexPath = [NSIndexPath indexPathForRow:1 inSection:0];
CustomCell *cell = (CustomCell *)[tableView cellForRowAtIndexPath:indexPath]; // Add This instead
NSString *userpassword = cell.textfield.text;
0 голосов
/ 21 февраля 2012

Ю не может использовать tableView вне методов источника данных и делегата.Как называется ваш табличный вид в определении интерфейса?Используйте это.

0 голосов
/ 21 февраля 2012

Ваш ViewController наследует UIView или UITableViewController?Предполагается, что вы вызываете tableView на том же контроллере, что и Table.

...