首页 文章

当用户按下按钮显示datepicker视图并选择日期然后显示为按钮 Headers 并进一步关闭datepicker视图

提问于
浏览
1

我写了这段代码 . 但没有工作......

是的NSLog看到了正确的日期 .

Datepicker还看到并选择了日期 . 但是,当我选择日期时,我的按钮 Headers 上没有任何更改,并且日期选择器保留在屏幕上 . 我想在用户选择日期时隐藏...

实际上,当用户按下按钮然后选择日期并将 Headers 设置为按钮并释放选择器视图时,我会显示datepicker视图 . 我使用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];

3 回答

  • 1

    在您的按钮操作中编写此代码

    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];
    

    外部按钮写下此代码

    -(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;
    }
    
  • 4

    试试这个

    代替它

    [self.DOBbutton setTitle:dateString forState:UIControlStateNormal];
    

    DOBbutton.titleLabel.text =dateString;
    

    并确保按钮是否与您的xib连接

  • 0

    设置 Headers 为Done的按钮,当用户选择Done时,称为波纹管方法...

    -(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];
    }
    

    这是我的custome方法,可用于更改Date的格式并将其转换为字符串..

    -(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;
    }
    

相关问题