如何使用datepicker在button上显示选定的date?

当我点击我的button能够显示dateselect器成功。但是当我从dateselect器selectdate我无法显示在UIbutton上选定的date。 PLZ帮助我

这是我的代码:

 -(IBAction)btnDateClicked:(id)sender { UIActionSheet *actionSheet1 = [[UIActionSheet alloc] initWithTitle:nil delegate:nil cancelButtonTitle:nil destructiveButtonTitle:nil otherButtonTitles:nil]; [actionSheet1 setActionSheetStyle:UIActionSheetStyleBlackTranslucent]; CGRect pickerFrame = CGRectMake(0, 40, 0, 0); UIDatePicker *pView=[[UIDatePicker alloc] initWithFrame:pickerFrame]; pView.datePickerMode=UIDatePickerModeDate; NSDateFormatter *df=[[NSDateFormatter alloc] init]; [df setDateFormat:@"MM/dd/yyyy"]; // NSDate *date=[df dateFromString:self.hController.fromDateTime]; // [pView setDate:date animated:YES]; self.datePicker=pView; [actionSheet1 addSubview:self.datePicker]; [pView release]; UISegmentedControl *closeButton = [[UISegmentedControl alloc] initWithItems:[NSArray arrayWithObject:@"Done"]]; closeButton.momentary = YES; closeButton.frame = CGRectMake(260, 7.0f, 50.0f, 30.0f); closeButton.segmentedControlStyle = UISegmentedControlStyleBar; closeButton.tintColor = [UIColor blackColor]; [closeButton addTarget:self action:@selector(dismissActionSheet1:) forControlEvents:UIControlEventValueChanged]; [actionSheet1 addSubview:closeButton]; [closeButton release]; [actionSheet1 showInView:[[UIApplication sharedApplication] keyWindow]]; [actionSheet1 setBounds:CGRectMake(0, 0, 320, 485)]; self.actionSheet=actionSheet1; [actionSheet1 release]; } /////////////////////////////////// - (void)dismissActionSheet1:(id)sender { [self.actionSheet dismissWithClickedButtonIndex:0 animated:YES]; NSDateFormatter *df=[[NSDateFormatter alloc] init]; [df setDateFormat:@"MM/dd/yyyy"]; //NSString *str=[df stringFromDate:self.datePicker.date]; //self.hController.selectDate=str; } 

您必须使用UIPickerViewDataSource,UIPickerViewDelegate方法。创builddate的数组您将在pickerView中显示并使用以下方法。

 - (void)pickerView:(UIPickerView *)pickerView didSelectRow: (NSInteger)row inComponent:(NSInteger)component { [ closeButton setTitle:[NSString StringWithFormat:@"%@",[datesArray objectAtIndex:row]] forState:UIControlStateNormal]; } 

添加一些作为子视图的标签到点击事件select视图的button上。从dateselectdateselect器将标签文本更新为所选date

使用它来更新button上的标题

 [ closeButton setTitle:str forState:UIControlStateNormal]; 

用IBOutlet做button的连接,然后在下面的方法中设置button的文本使用

  - (void)pickerView:(UIPickerView *)pickerView didSelectRow: (NSInteger)row inComponent:(NSInteger)component { [ closeButton setTitle:[NSString StringWithFormat:@"%@",[datesArray objectAtIndex:row]] forState:UIControlStateNormal]; } 

你完成了:)