iOS MVVM 如何将数据从 subview 模型传递到父 View 模型

标签 ios swift mvvm

<分区>

我是 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/

相关文章:

ios - 来自 <netinet/in.h> 的 INADDR_LOOPBACK 宏未在 swift 中导入

json - 快速解析 JSON

wpf - 组合框空引用异常上的 Selecteditem

ios - 在占位符字段中创建空格

ios - 当应用程序变为事件状态时,文件已加密或不是数据库消息

ios - fatal error : 'Pixate/PXVirtualControl.h' file not found

swift - 开括号后的参数

iOS 自定义 slider 删除两端的最小和最大空间

ios - iOS 中的 MVVM 模式

java - ZK中如何让按钮看起来像链接