문제점

할일을 overFullscreen 으로 띄우고 뒤에 배경을 투명하게 했더니

뒤에 뷰가 그대로 남아있어 viewWillAppear 가 실행이 안되어 추가한 데이터가 바로 반영이 안된다.

스크린샷 2023-10-06 오전 9.47.38.jpg

해결법

선택한 날짜를 넘기는 함수와

모달이 닫힐때 실행될 함수를 선언해두고

델리게이트 패턴을 이용해서 해결했다.

모달 델리게이트

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()
        }
    }
}