ios - 使用 MVVM 时,如何在子 ViewController 中扩展 ViewModel?

标签 ios swift mvvm

我有这样的层次结构:

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/

相关文章:

ios - 带有关系谓词的 Realm.io 快速查询

swift - 如何删除 UITableView 中 var 为整数的行?

c# - 使用 WPF 从自定义 JSON 显示 TreeView

flutter - 在 Flutter、MVVM 架构中将模型转换为实体的正确方法?

ios - 是否有内置的方法可以在iOS 6 UITextField中从右向左输入文本?

ios - UIVisualEffectView 明显地添加到 UICollectionViewCell

ios - Firebase 3 更新本地缓存

android - 使用 MVVM kotlin 进行 Firebase 身份验证

ios - 如何创建模态视图,用于在 iOS 中启动应用程序?

ios - 如何在没有 Storyboard ID 的情况下快速设置导航 Controller 的 Root View Controller 。并仅使用 View Controller 名称导航到其他 View