Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
Tags
- 면접을 위한 CS전공 지식 노트
- UserDefaults
- 자료구조
- TableView Section
- til
- Reference Cycle
- UIKit
- Carousel CollectionView
- 롤케이크 자르기
- firebase
- TableView
- NavigationSearchBar
- wil
- CarouselCollectionview
- 면접을 위한 CS 전공 지식 노트 Tree
- Array vs Linked List
- 프로그래머스
- @escaping
- 테이블뷰 나누기
- Value Type Reference Type
- CoreData
- 강한 참조 순환
- Input Output
- coremotion
- class struct
- ReferceCycle
- 양궁대회
- retain cycle
- SWIFT
- tableview section별 다른 cell적용
Archives
- Today
- Total
개발하는 동글 :]
MVVM RxSwift DataBinding Input Output 구조 사용하기 본문
지금 까지 MVVM을 사용하면서 Data Binding을 Observable Pattern을 이용해 왔었다
그리고 최근 공부를 시작한 RxSwift를 적용하며 이 RxSwift를 이용한 Data Binding의 방법 중 하나인 Input Output구조를 적용해 보자!
1. Input Output 구조를 사용할 뷰 모델의 protocol 만들기

Input과 Output구조를 거의 모든 Viewmodel에서 사용해 줄 것이니 이 구조를 프로토콜로 만들어 준다
이 구조를 통해 컨트롤러에서 transform 메서드를 이용하여 Output을 이용해 바인딩을 하자!
2. ViewModel에서 Input과 Output의 요소를 만들고 어떻게 Input을 변환하여 Output으로 전달할 것인지를 정의

ViewModel에서 ViewModelProtocol을 채택해 준 뒤 Input으로 사용 될 날짜를 선택할 때, viewWillAppear 될 때, cell을 tap 할 때를 정의하고 Output으로는 메모가 로드되는 것, DetailVC로 화면을 전환하는 것 을 정의하여 주자!
그리고 transform 내부를 확인해보면 날짜를 선택할 때 메모가 로드되는 것으로 변경해 주고 있다.
3. ViewController에서 Input을 주입하고 transform을 이용해 Output을 Binding 해주자

ViewController에서 Input으로 날짜를 선택할 때 Output으로 그 날짜의 메모들을 전달받고 memoTableView에 Binding 해주어 화면에 보여주는 Input Output구조를 적용할 수 있다..!