0

我试图通过使用 UIDatePicker 选择的时间来更改标签的文本,但是当我更新它时,它总是以 0:01 结束。

我已经尝试在一个新项目中单独使用该代码并且它可以运行,所以它与我的其他功能有关。

- (void)viewDidLoad {    
NSDateFormatter *df = [[NSDateFormatter alloc] init];
[df setDateFormat:@"HH:mm"];
pickerLabel.text = [NSString stringWithFormat:@"%@",
              [df stringFromDate:[NSDate date]]];
[self.view addSubview:pickerLabel];
[self.view addSubview:picker];    
}

并且当单击完成按钮时,它会更新标签值并将日期选择器的 uiview 动画化。

- (IBAction)savePalette:(id)sender {

[UIView beginAnimations:@"animateView" context:nil];
[UIView setAnimationDuration:0.5];

CGRect viewFrame = [animatedView frame];
viewFrame.origin.y = 480;
animatedView.frame = viewFrame;

animatedView.alpha = 1.0;
[self.view addSubview:animatedView];
[UIView commitAnimations];
NSLog(@"saving and close");

NSDateFormatter *df = [[NSDateFormatter alloc] init];
[df setDateFormat:@"HH:mm"];
pickerLabel.text = [NSString stringWithFormat:@"%@", [df stringFromDate:picker.date]];
NSLog([NSString stringWithFormat:@"%@",[df stringFromDate:picker.date]]);
}

任何帮助表示赞赏,谢谢!我认为的问题是从选择器中提取的日期没有被转移。

谢谢!

4

1 回答 1

0

你是如何从日期选择器中提取日期的?一世。e 你必须说明你是如何做到这一点的。您说的是完成按钮 - 它是否用于选择选择器上可见的日期而不滚动选择器并选择日期?

我遇到了像您一样的类似问题,并通过将日期输入选择器来解决它。

datePicker= [[UIDatePicker alloc] initWithFrame:PICKER_FRAME;
[datePicker addTarget:self action:@selector(selectedTime:) forControlEvents:UIControlEventValueChanged];

这里 datePicker 加载了默认日期,即 [NSdate date]。现在试试这个;

NSDateFormatter* dateFormatter = [[NSDateFormatter alloc] init];  
[dateFormatter setDateFormat:@"HH:mm"];
    //Setting the locale causes dateformatter to format string in 12 hr format.
 NSLocale *locale = [[NSLocale alloc] initWithLocaleIdentifier:@"en_US_POSIX"];
[dateFormatter setLocale:locale];
 NSString *dateString =[dateFormatter stringFromDate:date];
 NSDate  *pickerLoadingDate = [dateFormatter dateFromString:dateString];
 datePicker.date = pickerLoadingDate;
于 2013-05-17T07:05:41.997 回答