Project/[release]iOS - Bitnote
[iOS_개발자 단어장] MVVM 아키텍쳐 변경
고양이의시간
2020. 7. 25. 11:40
노트 입력 ViewController 에서 뷰모델, 비지니스 로직에 대한 부분을 분리
RxSwift 로 뷰와 뷰모델을 바인딩해서, 뷰모델이 변경되었을때 뷰가 자동 갱신되도록 변경
class NoteDetailViewModel {
private let groupListModel = GroupListViewModel.sharedInstance
// Subject: Observable + 외부에서 값 통제 가능
var noteInputItemsOb = BehaviorRelay<[NoteInputType]>(value: [])
// Input
let titleText = BehaviorSubject(value: "")
// Output
let isTitleValid = BehaviorSubject(value: false)
init(){
_ = titleText.distinctUntilChanged()
.map(checkTitleValid)
.bind(to: isTitleValid)
}
private func checkTitleValid(_ title: String) -> Bool {
return title != ""
}
}