0

我正在使用核心数据将实体添加到数据库中。有一个字段可以计算您的年龄。您使用选择器来填写您的生日,它会根据在日期选择器中选择的内容设置文本字段的文本。还有另一个视图,即您可以编辑的实体的详细视图。不幸的是,当采摘器加载时,它将加载今天的日期,而不是已经设置的TextField中的日期。有什么方法可以使用文本字段设置选择器的日期吗?文本格式如下:1997 年 8 月 11 日。如果我解释得不好,请见谅。基本上我想根据文本字段中的文本设置日期选择器的日期。

只是为了让您了解正在发生的事情:

- (void) dateChanged:(id)sender{
    NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
    dateFormatter.dateStyle = NSDateFormatterLongStyle;
    birthdayTextField.text = [NSString stringWithFormat:@"%@",
                   [dateFormatter stringFromDate:birthdayDatePicker.date]];

    [dateFormatter setDateFormat:@"yyyy-MM-dd hh:mm:ss"];
    NSString *startdate= [NSString stringWithFormat:@"%@",
                          [dateFormatter stringFromDate: birthdayDatePicker.date]];

    NSDate *End=[dateFormatter dateFromString:[dateFormatter stringFromDate:[NSDate date]]];

    NSCalendar *gregorianCalendar = [[NSCalendar alloc] initWithCalendarIdentifier:NSGregorianCalendar];
    NSDateComponents *components = [gregorianCalendar components:NSYearCalendarUnit
                                                        fromDate:[dateFormatter dateFromString:startdate]
                                                          toDate:End
                                                         options:0];
    if(components.year > 0){
    ageTextField.text=[NSString stringWithFormat:@"%d",components.year];
    }
}
4

3 回答 3

1
- (void)setDate:(NSDate *)date animated:(BOOL)animated

是在日期选择器上设置日期的功能。所以现在您需要使用 NSDate 将文本字段中设置的日期作为日期对象传递。如果文本字段的输入是字符串,那么您可以这样做:

NSString *dateString = @"09-08-2013";
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
[dateFormatter setDateFormat:@"dd-MM-yyyy"];
NSDate *dateFromString = [[NSDate alloc] init];
dateFromString = [dateFormatter dateFromString:dateString];

现在将它传递给第一个函数。希望这有帮助。

于 2013-08-09T12:25:36.037 回答
1
-(void)buttonPressed:(id)sender
{
    datePicker = [[UIDatePicker alloc] init];
    datePicker.autoresizingMask = UIViewAutoresizingFlexibleWidth;
    datePicker.datePickerMode = UIDatePickerModeDate;

    [datePicker addTarget:self action:@selector(dateChanged:) forControlEvents:UIControlEventValueChanged];
    CGSize pickerSize = [datePicker sizeThatFits:CGSizeZero];
     pickerToolbar.frame = CGRectMake(0,200, 320, 44);

    datePicker.frame = CGRectMake(0.0, 244, pickerSize.width, 460);
    datePicker.backgroundColor = [UIColor blackColor];
    [self.view addSubview:datePicker];

- (void) dateChanged:(id)sender
{
 NSDateFormatter* dateFormatter = [[NSDateFormatter alloc] init];
    [dateFormatter setDateStyle:NSDateFormatterLongStyle];
[dateFormatter setDateFormat:@"yyyy-MM-dd hh:mm:ss"];
    [dateFormatter setTimeStyle:NSDateFormatterNoStyle];
birthdayTextField.text = [NSString stringWithFormat:@"%@",
                   [dateFormatter stringFromDate:birthdayDatePicker.date]];
}

希望这对你有用....

于 2013-08-09T12:44:40.557 回答
0
  NSDateFormatter *dateFormat;
      dateFormat = [[NSDateFormatter alloc] init];
     [dateFormat setDateFormat:@"h:mm a"];
      NSDate *exampleDateFromString =[dateFormat dateFromString:@"8:48 AM"]; 
      date-picker.minimumDate=exampleDateFromString;
     [date-picker setDate:exampleDateFromString];
于 2014-09-23T06:54:22.627 回答