UIDatePicker无法识别它当前显示当前日期

时间:2016-08-01 10:30:42

标签: swift uidatepicker

我的swift应用程序使用UIDatePicker为用户选择日期。但是,我想设置它以便在用户忘记插入时显示“没有插入日期”。

问题在于,当我设置一个if语句,根据datePicker的日期是否等于当前日期显示警告时,它根本无法识别它。这是我的代码:

if datePicker.date == NSDate() {
    warnL.text = "NO DATE INSERTED"
}

我该怎么办? 任何帮助将非常感谢!谢谢。

2 个答案:

答案 0 :(得分:2)

有一种更简单的方法可以知道今天的日期是否使用NSCalendar上的方法:

if NSCalendar.currentCalendar().isDateInToday(datePicker.date) {
    warnL.text = "NO DATE INSERTED"
}

负责日历的时区,区域设置和类型。

答案 1 :(得分:0)

NSDate返回所有日期,包括时间,因此它永远不会等于您datePicker中的时间。 您可以定义变量,告诉您日期是否已更改:

var dateWasChanged = false

然后您可以为change事件注册处理程序:

func viewDidLoad() {
   datePicker.addTarget(self, action: #selector(YourViewController.handleDatePicker), forControlEvents: UIControlEvents.ValueChanged)
}

func handleDatePicker() {
    dateWasChanged = true
}

之后您可以检查dateWasChanged是否为true并显示您的信息。