
- MVVM 패턴에서는 뷰모델을 뷰컨트롤러의 속성으로 추가한다.
- 뷰 모델 - 뷰 간 바인딩한다.
- 뷰컨트롤러당 뷰모델 1개 존재
ViewModelBindableType
import UIKit
protocol ViewModelBindableType {
associatedtype ViewModelType
var viewModel: ViewModelType! { get set }
func bindViewModel()
}
extension ViewModelBindableType where Self: UIViewController {
mutating func bind(viewModel: Self.ViewModelType) {
self.viewModel = viewModel
loadViewIfNeeded()
bindViewModel()
}
}
ViewController
import UIKit
class MemoListViewController: UIViewController, ViewModelBindableType {
var viewModel: MemoListViewModel!
func bindViewModel() {
}
override func viewDidLoad() {
super.viewDidLoad()
}
}