[swift/xcode]FSCalendar의 데이터 Reload하기

luvoo·2021년 11월 5일
1

Swift

목록 보기
1/2

FSCalendar를 수업시간에 다뤄보았습니다.
FSCalendar의 기본적인 내용은 아래의 공식 github에서 확인할 수 있습니다ㅏ.

https://github.com/WenchaoD/FSCalendar

Realm에 저장한 일기 데이터를 가져와서 언제 일기를 썼는지 알려주려고 합니다.

extension CalendarViewController: FSCalendarDelegate, FSCalendarDataSource {

    func calendar(_ calendar: FSCalendar, numberOfEventsFor date: Date) -> Int {

        return tasks.filter("writeDate = %@", date).count
		}
}

FSCaledar 부분은 extension으로 묶어서 처리해주었습니다.

시뮬레이터로 빌드한 모습입니다.

numberOfEvents를 통해 날짜별로 일기 갯수를 보여줍니다.

날짜 밑에 생긴 작은 동그라미가 FSCalendar의 event입니다.

날짜별로 최대 3개의 event를 표현할 수 있습니다.

오늘 생긴 문제는 처음에 앱을 빌드하고, 앱 내에서 새로운 데이터를 저장했을때 그 내용이 FSCalendar에 반영이 안되는 것이었습니다.

TableView와 비슷한 방식으로 문제를 해결할 수 있었습니다.

바로 reloadData입니다.

override func viewWillAppear(_ animated: Bool) {
        super.viewWillAppear(animated)
        print(#function)
        calendarView.reloadData()
        
        let allCount = getAllDiaryCountFromUserDiary()
        allCountLabel.text = "총 \(allCount)개를 썼다."
}

ViewController에 viewWillAppear를 정의해주고, 그 안에 calendarView.reloadData()를 붙여주었습니다.

그리고 label도 하나 있기 때문에, label도 같이 업데이트를 해주었습니다.

reloadData()를 해주고 나면 realm에 데이터를 추가하거나 삭제한 것이 바로바로 반영되는 것을 볼 수 있습니다.

0개의 댓글