Когда я использую DatePicker для установки даты
Он сказал, что это ноль
Несмотря на то, что я проверил, формат строки даты правильный
И dateFormat настроен на формат, который я хочу.
Вот код
class DatePickerViewController: UIViewController {
var originDate: String!{
didSet{
//print("\(originDate)") is like "2019/07/12"
selectedDate = dateFormatter.date(from: originDate)
//print("\(selectedDate)") is nil
datePicker.setDate(selectedDate, animated: true)
}
}
var selectedDate: Date!
var dateString: String = "yyyy/MM/dd"
var dateFormatter: DateFormatter = DateFormatter()
override func viewDidLoad() {
dateFormatter.dateFormat = dateString
}
Вызов ShowPickerViewController DatePickerViewController
class ShowPickerViewController:UIViewcontroller {
@IBAction func showDatePicker(_ sender: Any) {
let vc = DatePickerViewController()
vc.originDate = sender.text // "2019/07/12"
present(vc, animated: true)
}
}
Инициализируйте формат даты с закрытием и используйте формат данных ГГГГ/ММ/дд
@Друг Не используй YYYY, используй yyyy.





Инициализировать средство форматирования даты с закрытием
let dateFormatter: DateFormatter = {
let formatter = DateFormatter()
formatter.dateFormat = "yyyy/MM/dd"
return formatter
}()
и удалите строку в viewDidLoad
Скорее всего
viewDidLoadвызывается после того, как вы установилиoriginDate.