MVC패턴, KVO, Notification Center, Singleton, 캡슐화/은닉화, 결합력/응집력, 뷰 간의 데이터 이동 등의 학습을 목표하고 있습니다.
다양한 과일 쥬스를 주문하는 것 입니다. 현재 재고량에 따라 과일 쥬스가 만들어지지 않을 수 있습니다
그러한 경우에는 재고수정 화면으로 진입 해 재고량을 수정하게 됩니다. 혹은 과일 쥬스 버튼을 클릭한 후 재고가 수정되지 않았다는 알람을 통해 재고 수정 화면으로 들어갈 수 있습니다.
화면 전환 방법과 화면전환 시 어떻게 데이터를 전달하는 가에 대한 학습이 중점적이었다고 할 수 있다. 2주간 중점적으로 찾아본 내용으 세그웨이, 뷰 전환방법, 델리게이트, 뷰 끼리 화면전환방법, 네비게이션 바를 어떻게 코드로 구현할 수 있는지에 대한 내용이었다. 네비게이션 컨트롤러는 연결되어 있느 루트뷰와 그 계층들의 경로를 제공해 주느 컨트롤러 로서 루트 뷰가 다른 네비게이션 컨트롤러를 가지고 있다면 그 네비게이션 컨트롤러를 인스턴스화 하여 present하는 방법이 있음을 알았다. 여기서 헷갈리 수 있는 것이 네비게이션 컨틀로러의 경우 스택 구조로서 push-pop 형태로 뷰 간에 화면전환을 진행하는데 이 개념을 다르 네비게이셔 컨트롤러로 이동하는 경우에는 사용하면 안된다는 것이다.
또한 화면전환 시 재고량을 반영해 주기 위해서 처음에는 static property를 만들어 타입 자체의 재고량으 두 개의 뷰에 반영하도록 하였다. 하지만 현재는 이 방법이 문제가 되지 않지만 추후 더 많은 뷰가 생겼을 때 재고량이 필요하지 않은 뷰에서도 타입 프로퍼티를 저장하기 위한 메모리공간을 사용하여 효율적이지 못한 메모리 사용을 한다고 볼 수 있다. 이를 refactoring하기 위하여 화면간의 데이터 전달 방식을 찾아보았다.
- 데이터 전달 방식
- 세그웨이
- Delegate
- Singleton
- KVO
- Notification Center
다음과 같은 개념을 알아야 한다느 것을 알았다. 차차 해당 개념을 정리하고 적용하는 시간을 가져야겠다.