SWIFT - UIDatePicker - 开始和结束日期选择但无法弄清楚如何将这两个日期调用到两个不同的文本框中
SWIFT - UIDatePicker - start and end date selection but can't figure out how to call both dates into two different text boxes
我在 tableview 控制器中有一个静态单元格,我要求用户在两个单独的文本字段中输入开始日期和结束日期。我正在使用 UIDatePicker
,当按下文本框时,会弹出日期选择器控制器。
我可以为两个框调用日期选择器,但只能在第一个框中显示日期。我的编码如下。我知道我只对要显示的第一个框进行编码,并认为如果我只使用相同的编码,第二个框就会显示,但我得到了一个错误。如何更改我的代码,使 handleDatePicker
确定开始日期和结束日期?
@IBAction func startDate(sender: UITextField) {
var startDatePickerView : UIDatePicker = UIDatePicker()
startDatePickerView.datePickerMode = UIDatePickerMode.Date
sender.inputView = startDatePickerView
startDatePickerView.addTarget(self, action: Selector("handleDatePicker:"), forControlEvents:UIControlEvents.ValueChanged)
}
func handleDatePicker(sender: UIDatePicker) {
var dateFormatter = NSDateFormatter()
dateFormatter.dateFormat = "dd MMM yyyy"
startDateTextLabel.text = dateFormatter.stringFromDate(sender.date)
}
@IBAction func endDate(sender: UITextField) {
var endDatePickerView : UIDatePicker = UIDatePicker()
endDatePickerView.datePickerMode = UIDatePickerMode.Date
sender.inputView = endDatePickerView
endDatePickerView.addTarget(self, action: Selector("handleDatePicker"), forControlEvents: UIControlEvents.ValueChanged)
}
你可以使用类似这样的东西:
var timeSelected: UITextField!
@IBAction func pickUpDate(sender: UITextField) {
var datePickerView : UIDatePicker = UIDatePicker()
datePickerView.datePickerMode = UIDatePickerMode.Time
sender.inputView = datePickerView
timeSelected = sender
***CODE***
datePickerView.addTarget(self, action: "handleDatePicker:", forControlEvents: UIControlEvents.AllEvents)
}
所以 handleDatePicker 函数:
func handleDatePicker(sender: UIDatePicker) {
var dateFormatter = NSDateFormatter()
dateFormatter.dateFormat = "HH:mm"
timeSelected.text = dateFormatter.stringFromDate(sender.date)
}
如您所见,如果您单击第一个 UITextField 或第二个 UITextField,timeSelected 将发生变化,因此 timeSelected.text 将替换正确的值。对于两个文本字段,您只需要一个 pickUpDate 函数(从您的故事板只需 CTRL + 鼠标指针从文本字段到 @IBAction 块)
希望对您有所帮助
干杯
我在 tableview 控制器中有一个静态单元格,我要求用户在两个单独的文本字段中输入开始日期和结束日期。我正在使用 UIDatePicker
,当按下文本框时,会弹出日期选择器控制器。
我可以为两个框调用日期选择器,但只能在第一个框中显示日期。我的编码如下。我知道我只对要显示的第一个框进行编码,并认为如果我只使用相同的编码,第二个框就会显示,但我得到了一个错误。如何更改我的代码,使 handleDatePicker
确定开始日期和结束日期?
@IBAction func startDate(sender: UITextField) {
var startDatePickerView : UIDatePicker = UIDatePicker()
startDatePickerView.datePickerMode = UIDatePickerMode.Date
sender.inputView = startDatePickerView
startDatePickerView.addTarget(self, action: Selector("handleDatePicker:"), forControlEvents:UIControlEvents.ValueChanged)
}
func handleDatePicker(sender: UIDatePicker) {
var dateFormatter = NSDateFormatter()
dateFormatter.dateFormat = "dd MMM yyyy"
startDateTextLabel.text = dateFormatter.stringFromDate(sender.date)
}
@IBAction func endDate(sender: UITextField) {
var endDatePickerView : UIDatePicker = UIDatePicker()
endDatePickerView.datePickerMode = UIDatePickerMode.Date
sender.inputView = endDatePickerView
endDatePickerView.addTarget(self, action: Selector("handleDatePicker"), forControlEvents: UIControlEvents.ValueChanged)
}
你可以使用类似这样的东西:
var timeSelected: UITextField!
@IBAction func pickUpDate(sender: UITextField) {
var datePickerView : UIDatePicker = UIDatePicker()
datePickerView.datePickerMode = UIDatePickerMode.Time
sender.inputView = datePickerView
timeSelected = sender
***CODE***
datePickerView.addTarget(self, action: "handleDatePicker:", forControlEvents: UIControlEvents.AllEvents)
}
所以 handleDatePicker 函数:
func handleDatePicker(sender: UIDatePicker) {
var dateFormatter = NSDateFormatter()
dateFormatter.dateFormat = "HH:mm"
timeSelected.text = dateFormatter.stringFromDate(sender.date)
}
如您所见,如果您单击第一个 UITextField 或第二个 UITextField,timeSelected 将发生变化,因此 timeSelected.text 将替换正确的值。对于两个文本字段,您只需要一个 pickUpDate 函数(从您的故事板只需 CTRL + 鼠标指针从文本字段到 @IBAction 块)
希望对您有所帮助
干杯