0

selectedRowInComponent メソッドを使用して、インデックス 0 のコンポーネントで現在選択されている行を取得していますが、常に 0 を返しています。チェックインしました

 NSLog("%d",[pickerview selectedRowInComponent:0]);

プログラムでピッカー ビューを使用しているため、ピッカーを初期化しました。提案してください。

4

2 に答える 2

0

このコードがお役に立てば幸いです。私のプロジェクトでは完璧に機能しています。

この関数を ViewDidLoad と呼びます

[self loadFirstPicker];

以下は時間だけを表示するUIpickerを作る関数です。(そしてテキストフィールドに保存)

-(void)loadFirstPicker
{
    UIDatePicker *picker = [[UIDatePicker alloc] init];
    picker.autoresizingMask = UIViewAutoresizingFlexibleWidth;
    picker.datePickerMode = UIDatePickerModeTime;

    [picker addTarget:self action:@selector(dueDateChanged:) forControlEvents:UIControlEventValueChanged];
    CGSize pickerSize = [picker sizeThatFits:CGSizeZero];
    picker.frame = CGRectMake(0.0, 250, pickerSize.width, 460);
    picker.backgroundColor = [UIColor blackColor];
    checkEveryTextFeild.inputView = picker;

    //[self.view addSubview:picker];
    //[picker release];

    // Create done button in UIPickerView
    UIToolbar*  mypickerToolbar = [[UIToolbar alloc] initWithFrame:CGRectMake(0, 0, 220, 56)];
    mypickerToolbar.barStyle = UIBarStyleBlackOpaque;
    [mypickerToolbar sizeToFit];

    NSMutableArray *barItems = [[NSMutableArray alloc] init];

    UIBarButtonItem *flexSpace = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemFlexibleSpace target:self action:nil];
    [barItems addObject:flexSpace];

    UIBarButtonItem *doneBtn = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemDone target:self action:@selector(pickerDoneClicked)];
    [barItems addObject:doneBtn];

    [mypickerToolbar setItems:barItems animated:YES];
    checkEveryTextFeild.inputAccessoryView = mypickerToolbar;
}

この関数はピッカーから時間を取得し、それを textFeild に設定します

-(void) dueDateChanged:(UIDatePicker *)sender {

    NSDateFormatter* dateFormatter = [[[NSDateFormatter alloc] init] autorelease];
    [dateFormatter setDateFormat:@"HH:mm:ss"];
    //[dateFormatter setTimeStyle:NSDateFormatterNoStyle];

    checkEveryTextFeild.text = [dateFormatter stringFromDate:[sender date]];
    NSDate *currentDate = [NSDate date]; 
    NSLog(@"%@",currentDate);
    NSLog(@"Picked the date %@", [dateFormatter stringFromDate:[sender date]]);

}
于 2012-09-22T22:56:19.563 に答える