UIDatePicker возвращает текущую дату, а не выбранную дату - PullRequest
0 голосов
/ 06 июня 2018

У меня есть UIDatePicker, который я печатаю выбранную дату в соответствии с кодом ниже.Тем не менее, он не печатает выбранную дату, только текущую дату.

@objc func setupDiscoverButton() {

    let cell = Bundle.main.loadNibNamed("FirstTableViewCell", owner: self, options: nil)?.first as! FirstTableViewCell

    // Date
    let sessionDate = cell.datePicker.date

    print("date: \(sessionDate)")
}

Здесь я делаю определения для моего UIDatePicker.

 func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {

    let cell = Bundle.main.loadNibNamed("FirstTableViewCell", owner: self, options: nil)?.first as! FirstTableViewCell

    // Date & time picker
    cell.datePicker.minimumDate = Date()
    cell.datePicker.timeZone = TimeZone.current

    // Discover button
    cell.discoverButton.addTarget(self, action: #selector(setupDiscoverButton), for: .touchUpInside)

    return cell
}

1 Ответ

0 голосов
/ 06 июня 2018

, чтобы получить изменение DatePicker, прослушайте datePickerChanged

datePicker.addTarget(self, action: #selector(datePickerChanged(picker:)), for: .valueChanged)

Таким образом, ваша ячейка будет

 func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {

    let cell = Bundle.main.loadNibNamed("FirstTableViewCell", owner: self, options: nil)?.first as! FirstTableViewCell

    // Date & time picker
    cell.datePicker.minimumDate = Date()
    cell.datePicker.timeZone = TimeZone.current
cell.datePicker.addTarget(self, action: #selector(datePickerChanged(picker:)), for: .valueChanged)

    // Discover button
    cell.discoverButton.addTarget(self, action: #selector(setupDiscoverButton), for: .touchUpInside)

    return cell
}

  @objc func datePickerChanged(picker: UIDatePicker) {
        print(picker.date)
    }
...