1

我想在我的 UITextField 中检索输入的数据并将其分配给一个参数。我正在尝试将标签分配给文本字段,但标签都变为 0。

编码:

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
    static NSString * defaultCellId = @"DefaultCell";
    static NSString * fieldCellId = @"FieldCell";
    static NSString * pictureCellId = @"PictureCell";

    DefaultCell *defaultCell = [_tableView dequeueReusableCellWithIdentifier:defaultCellId];
    FieldCell *fieldCell = [_tableView dequeueReusableCellWithIdentifier:fieldCellId];
    PictureCell *pictureCell = [_tableView dequeueReusableCellWithIdentifier:pictureCellId];

    if (indexPath.section == 1) {

        if (fieldCell == nil) {
            fieldCell = [[FieldCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:fieldCellId];
        }

        fieldCell.field.tag = indexPath.row + 1; //**THIS LINE**

        if (indexPath.row == 0)
            fieldCell.label.text = @"Namn";
        if (indexPath.row == 1)
            fieldCell.label.text = @"E-post";
        if (indexPath.row == 2)
            fieldCell.label.text = @"Telefon";
        return fieldCell;

    } else if (indexPath.section == 2) {

        if (defaultCell == nil) {
            defaultCell = [[DefaultCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:defaultCellId];
        }
        defaultCell.label.text = @"Plats";
        return defaultCell;

    } else if(indexPath.section == 3) {

        if (fieldCell == nil) {
            fieldCell = [[FieldCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:fieldCellId];
        }
        if(indexPath.row == 0)
            fieldCell.label.text = @"Titel";
        if(indexPath.row == 1)
            fieldCell.label.text = @"Text";
        return fieldCell;

    } else if(indexPath.section == 4) {

        if (pictureCell == nil) {
            pictureCell = [[PictureCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:pictureCellId];
        }
        pictureCell.label.text = @"Bild";
        return pictureCell;

    } else {

        if (defaultCell == nil) {
            defaultCell = [[DefaultCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:defaultCellId];
        }
        defaultCell.label.text = @"Lägg upp annons";
        return defaultCell;
    }
}

在我想要的 textFieldDidEndEditing 方法中是这样的。

- (void)textFieldDidEndEditing:(UITextField *)textField {

    if(textField.tag == 1)
        NSString *title = textField.text;
    if(textField.tag == 2)
        NSString *phone == textField.text;
}

感谢帮助,谢谢。

4

2 回答 2

0

对于带有多个 UITextField 的表格视图,我绝对推荐免费的 Sensible TableView 框架。在您的情况下,框架将自动从您的对象的属性创建字段,然后它还将根据用户在那里输入的任何内容自动设置它们的值。我觉得它真的很方便。

于 2013-03-24T17:27:10.450 回答
0

不要使用三个不同的自定义单元格,而是使用一个包含所有三个组件的单元格。并在 cellForRowAtIndexPath 方法中创建单元格时分配标签号

CueTableCell *cell = [tableView dequeueReusableCellWithIdentifier:simpleTableIdentifier];

if (cell == nil) {
    NSArray *array = [[NSBundle mainBundle] loadNibNamed:@"CueTableCell XibName" owner:self options:nil];
    // Grab a pointer to the first object (presumably the custom cell, as that's all the XIB should contain).
    cell = [array objectAtIndex:0];

    // Set tag to textField here and implement Delegate method of it to read value
    [cell.textField setTag:indexPath.row];
}
于 2013-03-24T11:36:52.973 回答