Swift UIDatePicker不';我不知道它当前显示的是当前日期
我的swift应用程序使用UIDatePicker供用户选择日期。但是,我想对其进行设置,以便在用户忘记插入时显示“未插入日期” 问题是,当我设置一个Swift UIDatePicker不';我不知道它当前显示的是当前日期,swift,uidatepicker,Swift,Uidatepicker,我的swift应用程序使用UIDatePicker供用户选择日期。但是,我想对其进行设置,以便在用户忘记插入时显示“未插入日期” 问题是,当我设置一个if语句,根据日期选择器的日期是否等于当前日期来显示警告时,它根本无法识别它。这是我的密码: if datePicker.date == NSDate() { warnL.text = "NO DATE INSERTED" } 我该怎么办? 任何帮助都将不胜感激!谢谢 NSDate返回所有日期,包括时间,因此它永远不会等于日期选择器中的时
if
语句,根据日期选择器的日期是否等于当前日期来显示警告时,它根本无法识别它。这是我的密码:
if datePicker.date == NSDate() {
warnL.text = "NO DATE INSERTED"
}
我该怎么办?
任何帮助都将不胜感激!谢谢
NSDate
返回所有日期,包括时间,因此它永远不会等于日期选择器中的时间。
您可以定义一个变量,告诉您日期是否已更改:
var dateWasChanged = false
然后,您可以为更改事件注册处理程序:
func viewDidLoad() {
datePicker.addTarget(self, action: #selector(YourViewController.handleDatePicker), forControlEvents: UIControlEvents.ValueChanged)
}
func handleDatePicker() {
dateWasChanged = true
}
之后,您可以检查日期是否已更改
是否为真
,并显示您的信息。了解日期是否为今天的一个更简单的方法是使用NSCalendar
上的方法:
if NSCalendar.currentCalendar().isDateInToday(datePicker.date) {
warnL.text = "NO DATE INSERTED"
}
它负责时区、区域设置和日历类型。哦,好了,现在我明白为什么它不起作用了!但是,在严格遵循上述步骤之后,我仍然会遇到一个错误:“类型‘ViewController’没有成员‘handleDatePicker’。我如何使其成为ViewController的成员或只是使其工作?下面是代码:'var dateWasChanged=false datePicker.addTarget(self,action:#selector(ViewController.handleDatePicker),forControlEvents:UIControlEvents.ValueChanged)func handleDatePicker(){dateWasChanged=true}'您需要将var-dateWasChanged=false
作为ViewController变量,然后调用viewDidLoad
中的addTarget
方法。和handleDatePicker
put-as方法在ViewController中。