Reputation: 73
Im just trying to extract a date to a variable to be used somewhere else and to have that variable change everytime the value of the Picker changes.
@IBAction func datePicker(_ sender: UIDatePicker) {
let dateFormatter = DateFormatter()
dateFormatter.dateFormat = "yyyy/MM/dd"
var DateString = dateFormatter.string(from: sender.date)
return
}
Im sure its simple but Im a newbie. Thank you
Upvotes: 0
Views: 62
Reputation: 285059
Use a property observer. It's called whenever the value changes.
var selectedDate : Date = Date() {
didSet {
let dateFormatter = DateFormatter()
dateFormatter.locale = Locale(identifier: "en_US_POSIX")
dateFormatter.dateFormat = "yyyy/MM/dd"
dateDisplay.text = dateFormatter.string(from: selectedDate)
}
}
@IBAction func datePicker(_ sender: UIDatePicker) {
selectedDate = sender.date
}
Upvotes: 1
Reputation: 386
Try this
make an extension on Date
extension Date {
func convertDateToString(format : String) -> String {
let dateFormatter = DateFormatter()
dateFormatter.dateFormat = format
return dateFormatter.string(from: self)
}
}
in your VC
let dateFormat = "yyyy/MM/dd"
var currentDate = Date().convertDateToString(format: dateFormat) // to get current date
@IBAction func datePicker(_ sender: UIDatePicker) {
currentDate = sender.date.convertDateToString(format: dateFormat)
}
Upvotes: 3
Reputation: 100503
Declare it inside the vc
var currentDate = ""
@IBAction func datePicker(_ sender: UIDatePicker) {
let dateFormatter = DateFormatter()
dateFormatter.dateFormat = "yyyy/MM/dd"
currentDate = dateFormatter.string(from: sender.date)!
}
Upvotes: 0