У меня есть уникальная ячейка в UITableView, которая имеет две кнопки. Мне нужно привязать эти действия к viewModel контроллера. Я связываю представление с моделью представления следующим образом:
func attach(wrapper: Attachable<ViewModel>) -> ViewModel {
self.viewModel = wrapper
loadViewIfNeeded()
let viewModel = self.viewModel.bind(bindings: bindings)
return bind(viewModel: viewModel)
}
Итак, когда вызывается метод loadViewIfNeeded (), у меня все еще нет ячеек из источника данных. Вот почему я не могу создавать привязки из кнопок ячейки.
Я пытался использовать делегат и связь таким образом, но я думаю, что пропустил лучшее решение:
protocol ProfileActionsViewCellDelegate {
var addFriendButton: UIButton { get }
}
код внутри ячейки
func bind(to viewModel: ProfileActionsViewModel) {
addFriendButton.rx.tap
.do(onNext: { [unowned self] _ in self.delegate?.addFriendButton.sendActions(for: .touchUpInside) })
.debug()
.subscribe()
.disposed(by: disposeBag)
}
Пример профиля mvvm