UIDatePicker가 있고 코드를 기반으로 테이블보기의 셀을 선택할 때마다 날짜 선택 도구가 다시 만들어 지거나 날짜 선택 도구와 비슷한 점이 있다고 생각합니다. 다시 생성됩니다. 나는 싱글 톤 (singleton)이라고 불리는 것을 들여다 보았습니다. 그러나 신속하게 새로운 사람들이기 때문에 그들이 일하는 것에 대해 혼란 스럽습니다. 싱글 톤이이 문제를 예방할 수 있습니까? 그렇다면 내 코드에 어떻게 구현하나요? 그렇지 않으면이 문제가 발생하지 않도록 어떻게해야합니까?UIDatePicker가 여러 번 초기화되는 것을 방지하는 방법
let datePicker = UIDatePicker()
func createDatePicker(indexPath: IndexPath, textField: UITextField){
//Tool Bar
let toolbar = UIToolbar()
toolbar.sizeToFit()
//Bar Button Item
let doneButton = UIBarButtonItem(barButtonSystemItem: .done, target: nil, action: nil)
toolbar.setItems([doneButton], animated: true)
textField.inputAccessoryView = toolbar
textField.inputView = datePicker
}
func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
if(indexPath.row != 0){
let cell = tableView.cellForRow(at: indexPath) as! TableViewCell2
cell.textField.isUserInteractionEnabled = true
cell.textField.delegate = self
if(indexPath.row == 2 || indexPath.row == 3){
createDatePicker(indexPath: indexPath, textField: cell.textField)
}
cell.textField.becomeFirstResponder()
if(indexPath.row == 1){
cell.textField.placeholder = "Event Title"
} else if(indexPath.row == 2){
cell.textField.placeholder = "Start Time"
} else if(indexPath.row == 3){
cell.textField.placeholder = "End Time"
}
}
}
사전에 어떤 도움을 주셔서 감사합니다 다음은 함수 내 코드는 내가 createDatePicker와 기능 createDatePicker에게 전화를 걸 때 사용합니다!
class GlobalDatePicker: UIDatePicker {
static let shared = GlobalDatePicker()
}
당신은 당신의 코드에서 하나의 날짜 선택 인스턴스를 사용합니다 :
모든 셀에 대해 별도의 날짜 선택 도구를 만드는 것이 왜 문제가됩니까? 'didSelect' 메쏘드 안에서 picker를 생성 할 필요가 없습니다. 셀의 속성 일 수 있습니다. – Sulthan