0

ここに画像の説明を入力

カスタム セルの 2 つのテキスト フィールドにピッカーを使用しています。1 つのフィールドのピッカー値を選択している間、1 つのセクションのすべての行に対して繰り返されます。次のコードを使用しています。そのテキストフィールドのカスタムボタンのアクションにピッカーを設定しています。

int pickerMoved=0;

-(IBAction)genderpickerbtnpressed:(id)sender {
    NSLog(@"genderpickerbtnpressed called ");
    UIActionSheet *asheet = [[UIActionSheet alloc] initWithTitle:@"Select your gender"
                                                        delegate:self
                                               cancelButtonTitle:@"Cancel"
                                          destructiveButtonTitle:nil
                                               otherButtonTitles:@"Select", nil];

    [asheet setTag:200];

    UIPickerView *statePicker = [[UIPickerView alloc] initWithFrame:CGRectMake(0, 40, 0, 0)];
    statePicker.delegate=self;

    statePicker.showsSelectionIndicator = YES;
    [statePicker setTag:11];
    [asheet addSubview:statePicker];
    [asheet showInView:[self.view superview]];
    [asheet setBounds:CGRectMake(0,0,320, 700)];
    [asheet setFrame:CGRectMake(0, 117, 320, 383)];
}



- (void)actionSheet:(UIActionSheet *)actionSheet clickedButtonAtIndex:(NSInteger)buttonIndex {

    if (buttonIndex != [actionSheet cancelButtonIndex]) {

        if(actionSheet.tag==200) {

            if(buttonIndex==0) {

                if(pickerMoved>0) {
                    NSLog(@"selected item is %d",pickerMoved);
                    NSLog(@"selected data is %@",[self.genderarray objectAtIndex:pickerMoved] );

                    self.savingsStr=[self.genderarray objectAtIndex:pickerMoved];
                } else {

                    NSLog(@"distanceArray object at index %@",[self.genderarray objectAtIndex:0]);
                    self.savingsStr=[self.genderarray objectAtIndex:0];
                }

            }
        }
        pickerMoved=0;
        [self.tripView reloadData];
    }



- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
    MyTripViewCell *cell = (MyTripViewCell *) [tableView dequeueReusableCellWithIdentifier:@"acell"];

    if (cell == nil) {
        cell = [[[NSBundle mainBundle] loadNibNamed:@"MyTripViewCell" owner:self options:nil] objectAtIndex:0];

        cell=Tblcell;
    }

    if(indexPath.section == 0) {

        Passenger *temp = [appDelegate.ADULTS objectAtIndex:indexPath.row];

        NSLog(@"adults array count is %d",[appDelegate.ADULTS count]);
        cell.textfield.text = temp.name;

        cell.gendertextfield.text = self.savingsStr;
        cell.dobtextfield.text =self.datepickerstr;
        cell.gendertextfield.tag=indexPath.row;

        [savingsStr release];
        NSLog(@"temp.gender is ----- %@",temp.gender);

    }
    cell.selectionStyle=UITableViewCellSelectionStyleNone;

    return cell;
}

成人向けセクションの性別テキストフィールドの値が繰り返されます。ピッカー値をセルにコピーする方法。どんなアイデアでも私と共有してください.Thanks.

4

1 に答える 1

1

あなたのcellForRow方法では、

if(indexPath.section == 0) 

そうあるべきだと思う

if(indexPath.row == 0) 

最初の行のみを埋めるようにします。また、最初のセクションの最初の行を埋める場合は、両方の条件を使用する必要があります。

于 2012-10-19T17:04:57.613 に答える