ios - iOS的UIDatePicker点击done但值没有变化,触发的事件是什么?

标签 ios uidatepicker

我在我的 iPhone 项目中使用 UIDatePicker。我想在打开它并单击“完成”按钮后在日期选择器中显示日期。我正在使用这段代码:

[datePicker addTarget:self action:@selector(changeDate:) forControlEvents:UIControlEventValueChanged]

changeDate 是我在别处定义的一个方法,我把 UIControlEventValueChanged 的​​相应代码放在那个方法中。但是,即使我没有进行任何更改,我也想在点击“完成”按钮后显示 UIDatePicker 中的值。我该怎么做?

最佳答案

您可以使用以下代码....

-(void)showDate{
    menu = [[UIActionSheet alloc] initWithTitle:@"Select Date"
               delegate:self
               cancelButtonTitle:nil
               destructiveButtonTitle:nil
               otherButtonTitles:nil];

    datePicker = [[UIDatePicker alloc] initWithFrame:CGRectMake(0.0, 44.0, 0.0, 0.0)];
    datePicker.datePickerMode = UIDatePickerModeDate;
    datePicker.minimumDate = [NSDate date];
    NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
    [dateFormatter setFormatterBehavior:NSDateFormatterBehavior10_4];
    [dateFormatter setLocale:[[[NSLocale alloc] initWithLocaleIdentifier:@"en_US"]autorelease]];
    [dateFormatter setDateFormat:@"dd MMM yyyy"];
    //[dateFormatter setDateFormat:@"MM/dd/YYYY"];

    //[theDatePicker release];
    [datePicker addTarget:self action:@selector(LabelChange:) forControlEvents:UIControlEventValueChanged];


    dateTool = [[UIToolbar alloc] initWithFrame:CGRectMake(0, 0, 320, 44)];
    dateTool.barStyle=UIBarStyleBlackOpaque;
    [dateTool sizeToFit];
    NSMutableArray *barItems = [[NSMutableArray alloc] init];
    UIBarButtonItem *flexSpace = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemDone target:self action:@selector(DatePickerDoneClick)];
    [barItems addObject:flexSpace];

    [dateTool setItems:barItems animated:YES];
    [menu addSubview:dateTool];
    [menu addSubview:datePicker];
    [menu showInView:self.view];
    [menu setBounds:CGRectMake(0,0,320, 464)];


    //    [self.view addSubview:datePicker];

    [datePicker release];
}
-(IBAction)DatePickerDoneClick{
    [menu dismissWithClickedButtonIndex:0 animated:YES];
}
- (NSInteger)numberOfComponentsInPickerView:(UIPickerView *)pickerView
{
    return 1;
}

- (NSInteger)pickerView:(UIPickerView *)pickerView numberOfRowsInComponent:(NSInteger)component{

        return [arrTime count];

}

- (NSString *)pickerView:(UIPickerView *)pickerView titleForRow:(NSInteger)row forComponent:(NSInteger)component
{

        return [arrTime objectAtIndex:row];

}

- (void)pickerView:(UIPickerView *)pickerView didSelectRow:(NSInteger)row inComponent:(NSInteger)component{

        txtTime.text = [arrTime objectAtIndex:row];

}

关于ios - iOS的UIDatePicker点击done但值没有变化,触发的事件是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12274936/

相关文章:

ios - 使用 nil 必需属性保存上下文时,Core Data 自定义访问器崩溃

ios - UIDatePicker 的今天变化

javascript - 更改 uidatepicker 月份后 Cluetip 不起作用

iphone - 了解文本字段中的字符打印

c# - 猜数字游戏还没开始就结束了

ios - 如何预加载 SCNAudioSource 以防止第一次声音播放时出现滞后?

iphone - 属性不更新

ios - UIDate Picker 上带有栏按钮的可调整大小的工具栏

swift - UIDatePicker 倒数计时器模式在 Xcode 10.3 中不会返回正确的时间

ios - 如何在 Swift 中使用 UIDatePicker 仅在没有日期组件的情况下将时间存储在 CoreData 中?