我有这样的层次结构:
class OneViewModel {
}
class OneViewController {
var viewModel = OneViewModel()
}
class TwoViewModel : OneViewModel {
}
class TwoViewController : OneViewController {
var viewModel = TwoViewModel() // ???
}
我知道 Swift 中不允许覆盖属性类型,但是子 ViewController 携带两个 ViewModel 没有意义,如何解决这个问题?谢谢!
最佳答案
这应该可行
class OneViewModel {
}
class OneViewController {
var viewModel = OneViewModel()
}
class TwoViewModel : OneViewModel {
}
class TwoViewController : OneViewController {
override init() {
super.init()
self.viewModel = TwoViewModel()
}
}
您可以在任何地方将您的 viewModel
实例设置为 TwoViewModel
类。
关于ios - 使用 MVVM 时,如何在子 ViewController 中扩展 ViewModel?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42825896/