DatePicker открывается при нажатии на row в tableview?

ios
swift
swift5

#1

Не могу связать событие - нажатие на cell в tableview и открытие сразу DatePicker.

DatePicker объвлен в UIViewController и настроен в функции:

let datePicker = UIDatePicker()

Знаю, что надо использовать метод делегата:

    func toggle() {
    datePicker.isHidden = true
    dateEditTableView.beginUpdates()
    dateEditTableView.endUpdates()
}
func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
    toggle()
}

Это не работает, DatePicker не всплывает, нажатие отлавливается (печатаю нажатый indexPath.row)


#2

так тут и не будет его, вы его не показываете.
datePicker.isHidden = true - ничего не делает, т.к. в вашем контроллере нету визуального элемента этого, он ни к чему не привязан.


#3

DatePiecker нужно привязать к какому-то визуальному элементу?
Не совсем понимаю как это сделать
У меня в контроллере есть tableview с двумя ячейками и header.


#4

По сути вы делаете так

let view = UIView()
view.isHidden = true|false

что в таком случае должно произойти?


#5

ничего, просто вью
Инициировать выдвижение Datepicker не выполняю, получается
но я настраиваю datePicker

    @objc func dateChanged() {
    let formatter = DateFormatter()
    formatter.dateFormat = "dd MMMM yyyy"
}
func initDatePicker() {
    let localeID = Locale.preferredLanguages.first
    datePicker.locale = Locale(identifier: localeID!)
    datePicker.datePickerMode = .date
    datePicker.backgroundColor = .tableViewColor
    datePicker.addTarget(self, action: #selector(dateChanged), for: .valueChanged)
}

#6

И опять же, это только инициализация и настройка. В вашем view datePicker’a по прежнему нет.

Вот