Я пытаюсь выполнить поиск в моем табличном представлении на основе даты с использованием средства выбора даты, но по какой-то причине таблица не обновляется.
цель состоит в том, чтобы отобразить ячейки, которые соответствуют только дате, выбранной из средства выбора даты.Вот мой код представления таблицы:
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCell(withIdentifier: "customCell", for: indexPath) as! CustomTableViewCell
let client = clinetarr[indexPath.row]
var output: String = ""
var resp: String = ""
var datee: String = ""
var index: String = ""
cell.message.numberOfLines=0
if let i = client["index"] as? String {
index = "\(i) " //using space as separator
}
if let date = client["date"] as? String {
datee = "\(date) " //using space as separator
}
if let response = client["response"] as? String {
resp = "\(response) "
}
if let message = client["message"] as? String {
output = message
}
cell.indextnumber.text = index
cell.response.text = resp
cell.date.text = datee
cell.message.text = output
return cell
}
вот мой код выбора даты и готово, кнопка fuunc
func createDatePicker() {
let toolbar = UIToolbar()
toolbar.sizeToFit()
let done = UIBarButtonItem(barButtonSystemItem: .done, target: nil, action: #selector(donebuttom))
toolbar.setItems([done], animated: false)
dateField.inputAccessoryView = toolbar
dateField.inputView = picker
picker.datePickerMode = .date
}
@objc func donebuttom() -> UITableViewCell{
var output: String = ""
var resp: String = ""
var datee: String = ""
var index: String = ""
// format date
let formatter = DateFormatter()
formatter.dateFormat = "yyyy-MM-dd"
let dateString = formatter.string(from: picker.date)
let indexPath = IndexPath(row: 0, section: 0)
let cell = tableView.cellForRow(at: indexPath) as! CustomTableViewCell
let client = clinetarr[indexPath.row]
dateField.text = "\(dateString)"
if let date = client["date"] as? String {
let dateee = "\(date) "
let last = dateee.prefix(10)
if last == dateString{
if let i = client["index"] as? String {
index = "\(i) "
}
if let date = client["date"] as? String {
datee = "\(date) " //using space as separator
}
if let response = client["response"] as? String {
resp = "\(response) "
}
if let message = client["message"] as? String {
output = message
}
tableView.reloadData()
}
else{
resp=""
tableView.reloadData()
}
}
cell.indextnumber.text = index
cell.response.text = resp
cell.date.text = datee
cell.message.text = output
tableView.reloadData()
self.view.endEditing(true)
return cell
}
по какой-то причине таблица не обновляется Заранее спасибо
Спасибо за каждый ответ, который я решаю.Особая благодарность за Дункана С. Ответ был прост, но я думаю, мой мозг был зажарен.