Sudhir
Sudhir

Reputation: 61

Displaying current default date in UIDatePickerr view

If I am selecting date from date picker view for current date, the time is also getting selected and displaying the current time, I want to separate in two different selection event

Here is my code snippet-

/* Button for displaying UIDatePicker view */

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

    NSDateFormatter* dateFormatter = [[NSDateFormatter alloc] init];
    [dateFormatter setDateFormat:@"dd MMM, yyyy"];


    self.lbl_StartDateValue.text = [dateFormatter stringFromDate:[sender date]];
    self.planStartDate = [dateFormatter stringFromDate:[sender date]];

    NSDate *date = [[NSCalendar currentCalendar] dateByAddingComponents:dateComponents toDate:[dateFormatter dateFromString:[dateFormatter stringFromDate:[sender date]]] options:0];

    self.lbl_EndDateValue.text = [NSString stringWithFormat:@"End %@",[dateFormatter stringFromDate:date]];
    self.planEndDate = [dateFormatter stringFromDate:date];
}

// Here I am not able to differentiate the selection of two picker view


-(void)onDoneButtonClick {

    [self dueDateChanged:self.picker];
    [self dueTimeChanged:self.picker];
    [self.toolbar removeFromSuperview];
    [self.picker removeFromSuperview];
    [self.tempBackgroundView removeFromSuperview];
}

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

    NSDateFormatter* dateFormatter = [[NSDateFormatter alloc] init];
    [dateFormatter setDateFormat:@"hh:mm a"];

    self.lbl_timeValue.text = [dateFormatter stringFromDate:[sender date]];
    self.planAlarmtime = [dateFormatter stringFromDate:[sender date]];
}

Upvotes: 0

Views: 66

Answers (3)

Sarvesh Singh
Sarvesh Singh

Reputation: 152

this is the code for UIDatepicker alloca and set current date

UIDatePicker *datepicker = [[UIDatePicker alloc] initWithFrame:CGRectMake(0, self.view.frame.size.height-320, self.view.frame.size.width, 320)];
datepicker.date = [NSDate date];
[self.view addSubview:datepicker];

Upvotes: 0

Anbu.Karthik
Anbu.Karthik

Reputation: 82759

do like , initially set the current date on your text field whenever user present the date picker

  (IBAction)btn_calendar_event:(id)sender {
   ......
 [self.toolbar sizeToFit];
[self.view addSubview:self.toolbar];
//if you want to show the default date as current date 

self.picker.date = [NSDate date];
 // set inital date on your textfield
[self dueDateChanged :  self.picker];
 }

if user pressed the done button then call this

-(void)onDoneButtonClick { 
 // call the method
[self dueDateChanged :  self.picker];
[self.toolbar removeFromSuperview]; 
[self.picker removeFromSuperview]; 
  [_txtf_birthDate resignFirstResponder];
} 

finally change the YYYY format

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

    NSDateFormatter* dateFormatter = [[NSDateFormatter alloc] init];
    [dateFormatter setDateFormat:@"yyyy-MM-dd"];


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

}

Upvotes: 1

Abdelahad Darwish
Abdelahad Darwish

Reputation: 6067

Just set minimum data as your current date

[self.picker setMinimumDate:[NSDate date]];

also you will not select until you scroll Picker

if you want to show the default date as current date

self.picker.date = [NSDate date]

Upvotes: 1

Related Questions