【问题标题】:How to check the date is modified in UIDatePicker or not?如何检查 UIDatePicker 中的日期是否被修改?
【发布时间】:2013-03-26 10:29:15
【问题描述】:

我正在使用UIDatePicker 选择日期。加载视图时,date picker minimum date 设置为 current date,对于我的规范,我需要知道在 UIDatePicker 中是否进行了任何修改。

if ([[date_picker minimumDate] compare:[date_picker date]] != NSOrderedSame) {
  printf("value modified");
}

我已经尝试过上述条件,但即使我没有修改日期,它也总是不匹配。我做错什么了吗?我怎么知道呢?

【问题讨论】:

    标签: iphone ios cocoa-touch nsdate uidatepicker


    【解决方案1】:

    像这样为日期选择器设置控制事件

       [date_picker addTarget:self
                   action:@selector(pickerChanged:)
         forControlEvents:UIControlEventValueChanged];
    

    并在 pickerChanged 方法中获取它的值

        - (void)pickerChanged:(id)sender{
                 selectedDate=[sender date];
           }
    

    日期比较

        if ([initialDate compare:selectedDate]!=NSOrderedSame)
            {
               NSLog(@"modified");
             // two dates are same and the date formatting of the two dates must be same
            }
    

    所以每当您更改日期时,都会触发此方法 initialDate 是在视图加载时设置值

    【讨论】:

    • 即使我将日期恢复为原始日期我也应该知道,日期没有任何修改。
    • 只需在 pickerChanged 方法中设置一个标志,pickerChanged 方法只会在日期更改时执行,当它恢复到当前日期时将标志设置为 false
    • 这就是我想要做的。但上述条件不符合我的情况。
    • 当前日期,视图加载的时间。
    • 我使用日期格式化程序打印了相同的日期,但比较它不匹配。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-09-05
    • 2013-12-16
    • 2014-04-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多