我有一个 UIDatepicker 让用户选择 time 。当用户选择一个时间并按下后退按钮以关闭视图并且如果他想检查他在 中选择的时间时,会出现在单击 aUITableview的位置。不显示用户选择的时间,它显示当前时间或 datepicker 的时间开始时间。我想显示用户再次打开日期选择器时用户选择的时间。
这是我在用户按下显示视图时的代码UIViewUIButtonUIDdatePickerUIDdatePickerUIDdatePickerUIDdatePickerUIButtonUIDdatePicker
-(IBAction)settingsButtonChanged:(UIButton *)sender
{
    userTimePicker = [[UIDatePicker alloc]init];
    [userTimePicker addTarget: self
                       action: @selector(userTimePickerValueChanged:)forControlEvents: UIControlEventValueChanged];
}
这是我的代码,它让 datepicker 有自定义时间限制
-(IBAction)datepickerTimenButtonChanged:(UIButton *)control
{
    if (control.tag == 1)
    {
        self.selectedButton = control.tag;
        int startTime = 7;
        int endTime = 11;
        NSDate *date1 = [NSDate date];
        components = [gregorian components: NSUIntegerMax fromDate: date1];
        [components setHour:startTime];;
        [components setMinute:00];
        NSDate *startDate = [gregorian dateFromComponents:components];
        [components setHour:endTime];
        [components setMinute:00];
        NSDate *endDate = [gregorian dateFromComponents:components];
        morningButton.selected = YES;
        afternoonButton.selected = NO;
        eveningButton.selected = NO;
        nightButton.selected = NO;
        [userTimePicker setDatePickerMode:UIDatePickerModeTime];
        [userTimePicker setMinimumDate:startDate];
        [userTimePicker setMaximumDate:endDate];
        [userTimePicker setDate:startDate animated:YES];
        [userTimePicker reloadInputViews];
    }
    if (control.tag == 2)
    {
        self.selectedButton = control.tag;
        morningButton.selected = NO;
        afternoonButton.selected = YES;
        eveningButton.selected = NO;
        nightButton.selected = NO;
        int startTime = 12;
        int endTime = 15;
        NSDate *date1 = [NSDate date];
        components = [gregorian components: NSUIntegerMax fromDate: date1];
        [components setHour:startTime];
        [components setMinute:00];
        NSDate *startDate = [gregorian dateFromComponents:components];
        [components setHour:endTime];
        [components setMinute:00];
        NSDate *endDate = [gregorian dateFromComponents:components];
        [userTimePicker setDatePickerMode:UIDatePickerModeTime];
        [userTimePicker setMinimumDate:startDate];
        [userTimePicker setMaximumDate:endDate];
        [userTimePicker setDate:startDate animated:YES];
        [userTimePicker reloadInputViews];
    }
}
允许用户选择自己的时间的代码
-(void) userTimePickerValueChanged:(UIButton *)sender
{
    switch (self.selectedButton)
    {
        case 1:
        {
            NSUserDefaults *userSelectedMorningTime = [NSUserDefaults standardUserDefaults];
            NSDate *selectedMorningTime = [userTimePicker date];
            NSLog (@"SETTING: morningTimeKey");
            storedMornTime = selectedMorningTime;
            [userSelectedMorningTime setObject:selectedMorningTime forKey:@"morningTimeKey"];
            [userSelectedMorningTime synchronize];
        }
            break;
        case 2:
        {
            NSUserDefaults *userSelectedAfternoonTime = [NSUserDefaults standardUserDefaults];
            NSDate *selectedAfternoonTime = [userTimePicker date];
            NSLog (@"SETTING: afternoonTimeKey");
            storedAfternoonTime = selectedAfternoonTime;
            [userSelectedAfternoonTime setObject:selectedAfternoonTime forKey:@"afternoonTimeKey"];
            [userSelectedAfternoonTime synchronize];
        }
            break;
}