<分区>
我是 MVVM 的新手。我应该如何从 subview 模型更新父 View 模型中的数据模型?
举个例子,假设我有一个用于新闻源页面的 CollectionViewModel
,它保留了一个 Post
数组(我的日期模型)和一个 CollectionCellViewModel 数组
对应于各个帖子。每个单元发出网络请求以监听新的喜欢。如何将此信息传递回 CollectionViewModel
并更新 Post
?
<分区>
我是 MVVM 的新手。我应该如何从 subview 模型更新父 View 模型中的数据模型?
举个例子,假设我有一个用于新闻源页面的 CollectionViewModel
,它保留了一个 Post
数组(我的日期模型)和一个 CollectionCellViewModel 数组
对应于各个帖子。每个单元发出网络请求以监听新的喜欢。如何将此信息传递回 CollectionViewModel
并更新 Post
?
最佳答案
您可以通过多种方式实现:
委托(delegate)模式:
protocol CollectionCellViewModelDelegate {
func onAction()
}
class CollectionCellViewModelDelegate: YourType {
var delegate: CollectionCellViewModelDelegate?
/// Your custom action
func yourCustomAction() {
delegate?.onAction
}
}
然后在你的父类中分配.delegate并实现onAction()
方法
闭包:
class CollectionCellViewModelDelegate: YourType {
var yourAction: (()->())?
func yourAction(_ completion: (()->())?) {
yourAction = completion
}
/// Your custom action
func yourCustomAction() {
yourAction?()
}
}
然后使用父类中的以下代码调用您的闭包:
child.yourAction { // do custom stuff }
关于iOS MVVM 如何将数据从 subview 模型传递到父 View 模型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49076915/