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

3つの異なるカスタムセルを使用する代わりに、3つのコンポーネントすべてを含む単一のセルを使用します。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 に答える
0

複数のUITextFieldを含むテーブルビューの場合、無料のSensibleTableViewフレームワークを絶対にお勧めします。あなたの場合、フレームワークはオブジェクトのプロパティからフィールドを自動的に作成し、次にユーザーがそこに入力したものからそれらの値を自動的に設定します。本当に便利だと思います。

于 2013-03-24T17:27:10.450 に答える