할일을 overFullscreen 으로 띄우고 뒤에 배경을 투명하게 했더니
뒤에 뷰가 그대로 남아있어 viewWillAppear 가 실행이 안되어 추가한 데이터가 바로 반영이 안된다.
선택한 날짜를 넘기는 함수와
모달이 닫힐때 실행될 함수를 선언해두고
델리게이트 패턴을 이용해서 해결했다.
protocol ModalPresentDelegate: AnyObject {
func sendDateToModal() -> Date
func disMissModal(section: SectionType)
}
weak var delegate: ModalPresentDelegate?
@objc func tapgestureTapped(){
dismissModal()
}
private func dismissModal(){
titleTextField.resignFirstResponder()
dismiss(animated: true)
delegate?.disMissModal(section: .todo) // 닫힐때 호출
}
extension HomeViewController: ModalPresentDelegate {
func sendDateToModal() -> Date {
return selectDate
}
func disMissModal(section: SectionType) {
switch section {
case .doit:
viewmodel.fetchDoitData(date: selectDate)
fsCalendar.reloadData()
case .todo:
viewmodel.fetchTodoData(date: selectDate)
fsCalendar.reloadData()
case .memo:
viewmodel.fetchMemoData(date: selectDate)
fsCalendar.reloadData()
}
}
}