In my (mediocre at best) app, I can take 2 text fields, and store them to core data. But one of them should be a date.
I’d like to use date picker to replace the 2nd text field, but everything I’ve tried doesn’t seem to let me get it’s value so I can use it. When the user pics a date, how do I pass that to a variable? thanks!
@objc private func didTapAdd() {
let getInfo = UIAlertController(
title: "Event Name & Date",
message: "",
preferredStyle: .alert
)
//add fields
getInfo.addTextField { field in
field.placeholder = "Event Name"
field.returnKeyType = .next
}
let datePicker:UIDatePicker = UIDatePicker()
getInfo.view.addSubview(datePicker)
datePicker.datePickerMode = .date
getInfo.addTextField { field in
field.placeholder = "Event Date MM/DD/YYYY"
field.returnKeyType = .continue
}
// getInfo.addTextField { field in
// field.placeholder = "Event Repeats"
// field.returnKeyType = .continue
// }
//Add buttons
getInfo.addAction(UIAlertAction(title: "Cancel", style: .cancel, handler: nil))
getInfo.addAction(UIAlertAction(title: "Continue", style: .default, handler:{ _ in
// print("Pop up was closed via Continue")
//Read values
guard let fields = getInfo.textFields, fields.count == 2 else {return}
let eventName = fields[0]
let eventDate = fields[1]
// let eventRepeats = fields[2]
guard let eventName = eventName.text, !eventName.isEmpty,
let eventDate = eventDate.text, !eventDate.isEmpty else {
print("Invalid Entries, No Data Saved")
return
}
//Convert eventDate String to Date until I can program date picker
let dateString = eventDate
let dateFormatter = DateFormatter()
dateFormatter.locale = Locale(identifier: "en_US_POSIX")
dateFormatter.dateFormat = "MM/dd/yyyy"
if let eventDate = dateFormatter.date(from: dateString) {
// print(eventDate)
self.createItem(name: eventName, eventDate: eventDate)
}
} ))
present(getInfo, animated: true)
}