如何在 MVVM 中的 UITableViewCell 中绑定 UIButton 操作

Vit*_*lov 6 binding mvvm uibutton ios swift

我有以下MVVM架构。这并不是什么特别的事情,只是为了更好地理解。

在此输入图像描述

主要问题是什么:

我需要如何绑定UIButton动作才能在UIViewController.

我尝试按以下方式进行操作:

1)首先,我将属性添加为闭包ViewModel

var cellButtonActionCallback: (() -> Void)?
Run Code Online (Sandbox Code Playgroud)

2)我为以下添加相同的属性CellViewModel

var buttonCallback: (() -> Void)?
Run Code Online (Sandbox Code Playgroud)

3)当我设置CellViewModel时:

cellViewModel.buttonCallback = cellButtonActionCallback
Run Code Online (Sandbox Code Playgroud)

4)最后添加目标UIButton,选择器buttonAction也 调用buttonCallback :

button.bind { cellViewModel.buttonAction() }
Run Code Online (Sandbox Code Playgroud)

看起来我定义的闭包UITableViewController经历了所有viewModels这对我来说不是一个好主意。

事实上,这种方法效果很好,但我不喜欢它。

做同样的事情最好的方法是什么?