当用户按下button显示dateselect器视图和selectdate,然后显示为button标题和进一步closuresdateselect器视图
我写了这个代码。 但不包括…
NSLog是正确的date。
Datepicker也看到并selectdate。 但是,当我selectdate没有任何改变我的button标题和dateselect留在屏幕上。 我也想隐藏当用户selectdate…
其实我显示dateselect器视图时,用户按下button,然后selectdate和设置标题button并释放select器视图。 我使用ios 5 …
[datePicker setHidden:NO]; NSDateFormatter *dateFormatter = [[NSDateFormatter alloc]init]; [dateFormatter setDateFormat:@"MM/dd/yyyy"]; NSString *dateString = [dateFormatter stringFromDate:[self.datePicker date]]; NSLog(@"\n" "theDate: |%@| \n" , dateString); [self.DOBbutton setTitle:dateString forState:UIControlStateNormal];
在你的button操作中写下这段代码
UIActionSheet *dateActionSheet = [[UIActionSheet alloc] initWithTitle:@"" delegate:self cancelButtonTitle:nil destructiveButtonTitle:nil otherButtonTitles:@"Done", nil]; [dateActionSheet setActionSheetStyle:UIActionSheetStyleBlackTranslucent]; [dateActionSheet showInView:self.view]; [dateActionSheet setFrame:CGRectMake(0, 200, 320, 383)]; UIDatePicker *dp = [[UIDatePicker alloc] initWithFrame:CGRectMake(0, 80, 100, 116)]; dp.datePickerMode = UIDatePickerModeTime; // NSDateFormatter *dateFormat = [[NSDateFormatter alloc] init]; // [dateFormat setDateFormat:@"HH:mm:ss"]; NSDate *eventDate = dp.date; NSDateFormatter *timeFormat = [[NSDateFormatter alloc] init]; [timeFormat setLocale:[[NSLocale alloc] initWithLocaleIdentifier:@"en_US"]]; [timeFormat setDateFormat:@"HH:mm"]; timeString = [timeFormat stringFromDate:eventDate]; [ dp addTarget: self action: @selector(dateChanged:) forControlEvents:UIControlEventValueChanged ]; [ self.view addSubview: dp ]; // txtProposeTime.font = [ UIFont fontWithName: @"Arial" size: 9.0 ]; // txtProposeTime.textColor = [ UIColor blackColor ]; txtProposeTime.text = timeString; [dp setDatePickerMode:UIDatePickerModeTime]; [dateActionSheet addSubview:dp];
外面的button写这个代码
-(void) dateChanged: (id)sender { UIDatePicker *control = (UIDatePicker *) sender; control.datePickerMode=UIDatePickerModeDate; NSDateFormatter *dateFormat = [[NSDateFormatter alloc] init]; // [dateFormat setDateFormat:@"MM/dd/yyyy HH:mm:ss a"]; NSDate *eventDate = control.date; NSDateFormatter *timeFormat = [[NSDateFormatter alloc] init]; [timeFormat setLocale:[[NSLocale alloc] initWithLocaleIdentifier:@"en_US"]]; [timeFormat setDateFormat:@"dd/MM/yyyy"]; NSString *dateString = [timeFormat stringFromDate:eventDate]; txtMeetingDate.text=dateString; }
尝试这个
代替它
[self.DOBbutton setTitle:dateString forState:UIControlStateNormal];
同
DOBbutton.titleLabel.text =dateString;
并确保button连接到您的xib或不
设置button标题完成,当用户select完成时,称为波纹pipe方法…
-(IBAction)btnDone_Clicked:(id)sender { [UIView beginAnimations:nil context:NULL]; [UIView setAnimationDuration:0.3]; NSString *dateString =[[yourDatePicker date] stringFromDateWithFormat:@"MM/dd/yyyy"]; [yourButton setTitle:dateString forState:UIControlStateNormal]; [yourDatePicker setHidden:YES]; [UIView commitAnimations]; }
这是我自己的方法,这有助于更改date格式并将其转换为string..
-(NSString*)stringFromDateWithFormat:(NSString*)strDateFormat{ NSDateFormatter *formatter = [[NSDateFormatter alloc] init]; //[formatter setTimeZone:[NSTimeZone systemTimeZone]]; [formatter setDateFormat:strDateFormat]; NSString *str = [formatter stringFromDate:self]; [formatter release]; return str; }