ProductVC에서 카테고리를 선택했을때, BottomSheet가 올라오고 내려가면서 imageView의 애니메이션 전환이 필요하다.

animate는 총 2번 작동한다. 처음 카테고리를 tap했을 때 한 번, bottomSheet이 dismiss될 때 한 번.

bottomSheetVC의 dismiss시, ProductViewController에게 완료를 알려주어야 결과 animate를 적용할 수 있다.

현재 MVVM Coordinator를 적용하고 있는데, 이 flow를 어떻게 전달해야 SOLID를 지킬지 고민을 많이 했다.

화면 Flow

유저가 카테고리 탭을 수행 시

ProductVC input → ProductVM의 actions 호출 → ProductCoordinator의 메소드 실행으로 인해 CategoryBottomSheetVC present

유저가 카테고리 탭을 dismiss 시

BottomSheetVC 모두 제거되면서 Coordinator가 이 상황을 ProductVM에게 알리고, ViewModel은 ViewController에게 Output을 전달

고민 사항

Coordinator는 dependencies delegate를 통해 ViewModel이 주입된 ViewController만 생성할 수 있기 때문에, ViewModel객체를 참조할 수 없다. 따라서 Coordinator가 VieModel에게 결과를 알려줄 방법은 모색해야 했다.

in Coordinator

image.png