Ich möchte eine datepicker
nach Drücken einer tableview swipe edit action button
zeigen. Es heißt postpone, und nachdem ich einen Datepicker geöffnet habe, möchte ich, dass mein Benutzer ein Datum auswählt und die Done-Taste der Datepicker-Toolbar drückt. Ich habe die datepicker
und toolbar
erstellt, aber ich weiß nicht, wie man es mit der Bearbeitungsaktion zeigt. HierWie zeige ich einen Datumsauswahl nach dem Drücken einer TableView Zelle Swipe Edit Aktion
ist der Datepicker Code:
func createDatePicker() {
picker.datePickerMode = .date
let toolbar = UIToolbar()
toolbar.barStyle = UIBarStyle.default
toolbar.isTranslucent = true
toolbar.tintColor = UIColor(red: 189/255, green: 194/255, blue: 201/255, alpha: 1)
toolbar.sizeToFit()
let doneButton = UIBarButtonItem(title: "Done", style: UIBarButtonItemStyle.plain, target: self, action: #selector(donePicker))
doneButton.tintColor = UIColor.black
let spaceButton = UIBarButtonItem(barButtonSystemItem: UIBarButtonSystemItem.flexibleSpace, target: nil, action: nil)
let cancelButton = UIBarButtonItem(title: "Cancel", style: UIBarButtonItemStyle.plain, target: self, action: #selector(cancelPicker))
cancelButton.tintColor = UIColor.black
toolbar.setItems([cancelButton, spaceButton, doneButton], animated: false)
toolbar.isUserInteractionEnabled = true
//dateTimeTextField.inputAccessoryView = toolbar (I was using this part to open a datepicker with a text field but I don't know how to modify it for the edit action)
//dateTimeTextField.inputView = picker
picker.addTarget(self, action: #selector(handleDatePicker(sender:)), for: .valueChanged)
}
Aktion bearbeiten Code:
func tableView(_ tableView: UITableView, editActionsForRowAt indexPath: IndexPath) -> [UITableViewRowAction]?
{
let postpone = UITableViewRowAction(style: .normal, title: "Postpone"){(UITableViewRowAction,NSIndexPath) -> Void in
self.tasks[indexPath.row].status = "postpone"
let encodedData = NSKeyedArchiver.archivedData(withRootObject: self.tasks)
UserDefaults.standard.removeObject(forKey: "taskList")
UserDefaults.standard.set(encodedData, forKey: "taskList")
self.taskTableView.reloadData()
}
postpone.backgroundColor = UIColor.init(red: 222/255, green: 119/255, blue: 49/255, alpha: 1)
return [done, cancel, postpone]
}
Aktion bearbeiten Tasten Bild:
Datumsauswahl Bild in einer anderen Seite:
aktualisieren ~ Nachdem ich diesen Code
picker.addSubview(toolbar)
taskTableView.addSubview(picker)
taskTableView.bringSubview(toFront: picker)
Sie benötigen eine Ansicht in der pospone Aktion in Ihrer 'editActionsForRowAt' Aktion öffnen –