[두리번] 프로젝트 11~12일차 회고

한상진·2021년 7월 10일
0

두리번

목록 보기
5/8



🛫여행 추가 뷰-캘린더 뷰 연동

이전에 완성했던 여행 추가 뷰와 캘린더 뷰를 연동했습니다!

🛬배운 점

캘린더에서 날짜들을 선택하고 여행 추가 뷰에 데이터를 어떻게 전달할지 생각해보다가, 제가 항상 사용하던 방식인 프로퍼티에 직접 접근하여 데이터를 전달해주는 방식으로 작업해봤습니다.

근데 이 방식으로 하니 데이터는 전달되지만, 뷰 자체가 스토리보드 파일이 구분되어있기 때문에 navigation pop을 하는 순간 여행 추가 뷰에서 날짜 Label에 바로 입력이 되지 않았습니다.

제가 그동안 프로퍼티에 직접 접근해서 데이터를 전달해주는 방식 이외에는 데이터 전달을 해본 경험이 없어서 살짝 멘붕이 왔었는데, 저희 리드개발자 태현이형이 프로토콜-델리게이트 패턴을 사용하면 될거라고 조언을 해줘서 시도해봤습니다.

var delegate: dateLabelProtocol?

@IBAction func selectButtonClicked(_ sender: Any) {
        self.delegate?.startEndDateLabelSet(start: startDateLabelData, end: endDateLabelData)
        self.navigationController?.popViewController(animated: true)
    }

protocol dateLabelProtocol {
    func startEndDateLabelSet(start: String, end: String)
}

캘린더 뷰에서는 이런식으로 프로토콜을 선언하고, 날짜 등록하기 버튼을 누르면 프로토콜 메소드가 실행되며 navigation이 pop되는 방식으로 구현했습니닫.

extension AddTripViewController: dateLabelProtocol {
    func startEndDateLabelSet(start: String, end: String) {
        startDateLabel.text = start
        endDateLabel.text = end
        startDateView.backgroundColor = Colors.white9.color
        endDateView.backgroundColor = Colors.white9.color
        checking()
    }
}

여행 추가 뷰컨트롤러에서는 프로토콜 메소드를 이렇게 날짜 Label들을 변경해주는 식으로 구현했더니 성공했습니다!

세미나 시간에 데이터를 전달하는 여러가지 방식을 배웠었는데, 이번에 두리번 프로젝트를 통해 Notification-Observer패턴, Protocol-Deletage 패턴을 사용해볼 수 있었습니다.
두 패턴 모두 자주 사용하게 되는 패턴이라고 해서 잘 익혀둬야겠다는 생각이 많이 들었습니다.



🛫여행 멤버 뷰 작업

사실 12일차에는 작업을 거의 하지 못했습니다.
여행 멤버 뷰를 작업을 좀 진행할 계획이었는데 시간투자를 많이 하지 못했습니다. 숙소에서 팀원들이랑 노느라...
현재 어떻게 구현할지 구상을 하는 단계입니다.



🛫내일의 목표

여행 멤버 뷰를 작업을 시작할 계획입니다.
테이블뷰를 깔고 더미데이터를 통해 UI구성까지 완성하는 것이 목표입니다.

profile
공부방

0개의 댓글