Как связать действие UIButton в UITableViewCell в MVVM - PullRequest
0 голосов
/ 23 января 2019

У меня есть следующая MVVM архитектура.Это не что-то особенное, просто для лучшего понимания.

enter image description here

Какой главный вопрос:

Как сделатьМне нужно связать действие UIButton, чтобы вызвать некоторую реакцию в UIViewController.

Я пытаюсь сделать это следующим образом:

1) Прежде всего, я добавляюсвойство как замыкание для ViewModel:

var cellButtonActionCallback: (() -> Void)?

2) Я добавляю то же свойство для CellViewModel:

var buttonCallback: (() -> Void)?

3) Когда я настраиваю CellViewModel, сделайте:

cellViewModel.buttonCallback = cellButtonActionCallback

4) И, наконец, добавьте цель для UIButton, и селектор buttonAction вызывает buttonCallback :

button.bind { cellViewModel.buttonAction() }

Похожезамыкание, которое я определяю на UITableViewController, проходит через все viewModels, что, на мой взгляд, не очень хорошая идея.

На самом деле этот подход работает нормально, но мне он не нравится.

Какой самый лучший способ сделать то же самое?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...