用法
常规设置
在您的 AppDelegate.swift
中添加以下内容
import UIKit
@UIApplicationMain
class AppDelegate: UIResponder, UIApplicationDelegate {
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
...
MVVM.shared.initialize()
return true
}
...
}
创建 ViewModel 的子类
import MVVM
class BasicViewModel: ViewModel {
// we'll come back to this later
}
在您的 UIViewController 中添加以下内容
class ViewController: UIViewController {
private let basicViewModel = BasicViewModel() // replace with your new ViewModel subclass
}
extension ViewController: LiveDataObserver {
func setupObservers() {
}
var viewModel: ViewModel {
get {
return basicViewModel // return your viewModel here
}
}
}
观察数据
要观察数据,您必须有可以观察的数据,因此向您的 viewModel 添加一些 liveData
import MVVM
class BasicViewModel: ViewModel {
lazy var simpleNumber = LiveData<Int>(self)
}
接下来,您需要在之前添加到视图控制器的 LiveDataObserver.setupObservers
函数中调用 observe
func setupObservers() {
basicViewModel.simpleNumber.observe { number in
// data comes back as an optional
guard let number = number else { return }
print("\(number)")
}
}
现在,当数据改变时,视图控制器将自动打印数字。
监控生命周期变化
当视图控制器的生命周期发生变化时,ViewModel 中有许多方法被调用。您可以重写它们以获得额外的行为
class BasicViewModel: ViewModel {
override func created() {
// called when the view model is initially created. Good for loading data
}
override func backgrounded() {
// called when the app is backgrounded
}
override func foregrounded() {
// called when the app is foregrounded
}
override func onCleared() {
// called when the view model has been cleared (due to viewcontroller de-init)
}
}