我正在开发一个显示 26 个(字母)按钮的应用程序。现在它们都连接到 中的同一个函数,ViewController
依次调用 中的另一个函数ViewModel
,最后这个函数调用publishSubject.onNext()
. ViewController
订阅了,这PublishSubject
就是整个圈子。
我这样做的原因不是将发布主题绑定到按钮的点击,而是我必须知道发件人是谁。反正有这样做吗?如果没有,还有比我头脑中更智能的设计吗?
谢谢!
我正在开发一个显示 26 个(字母)按钮的应用程序。现在它们都连接到 中的同一个函数,ViewController
依次调用 中的另一个函数ViewModel
,最后这个函数调用publishSubject.onNext()
. ViewController
订阅了,这PublishSubject
就是整个圈子。
我这样做的原因不是将发布主题绑定到按钮的点击,而是我必须知道发件人是谁。反正有这样做吗?如果没有,还有比我头脑中更智能的设计吗?
谢谢!
您可以PublishSubject
发送String
,然后每次点击按钮时,您可以将按钮的标题作为事件数据发送。
publishSubject.onNext(sender.title)
这样您就可以将发件人与发件人区分开来ViewModel
并保留您当前的设计。
更新:
再次阅读您的问题后,我意识到您正在尝试实现比您目前拥有的更具反应性的方式。因此,IBActions
您可以 将所有这些按钮绑定到. 像这样的东西:IBOutlets
viewDidLoad
PublishSubject
aButton
.rx
.tap.map { _ in
aButton.title
}
.bindTo(viewModel.buttonTapped)
.disposed(by:disposeBag)