【发布时间】:2019-01-26 18:02:22
【问题描述】:
我想为 RxSwift 中的按钮绑定不同的操作。 我有绑定
registerButton.rx.tap
.map { self.registerButton.isEnabled = false }
.bind(to: viewModel.registrationPressed)
.disposed(by: disposeBag)
想切换到
self.registerButton.rx.tap
.map { self.registerButton.isEnabled = false }
.bind(to: viewModel.registerPinPressed)
.disposed(by: disposeBag)
与
let registrationPressed = PublishSubject<Void>()
let registerPinPressed = PublishSubject<Void>()
有没有办法解除第一个绑定?
编辑: 似乎无法解除绑定,但感谢 Daniel T。我找到了可行的解决方案。
let tap = registerButton.rx.tap
.map { _ in
self.isFormProcessed
}
tap.filter { !$0 }
.toVoid()
.bind (to: viewModel.registrationPressed)
.disposed(by: disposeBag)
tap.filter { $0 }
.toVoid()
.bind(to: viewModel.registerPinPressed)
.disposed(by: disposeBag)
【问题讨论】:
-
触发主题的标准是什么?
-
@DanielT。如果第一个请求已通过,我希望为同一个按钮绑定另一个操作。
-
您在第一次点击后禁用该按钮。不会有第二个...
-
@DanielT。 thanx,但我需要绑定另一个动作并删除第一个动作,而不是禁用。
-
好的,因为你不应该像这样改变
map中的状态。它导致了一个令人心痛的世界。
标签: ios iphone data-binding uibutton rx-swift