Я знаю, что то, о чем вы просите, кажется разумной идеей, но это не так. Ваше логическое значение isSelected
не изменит состояние, если вы специально не напишите код для make , чтобы он изменил состояние. Возникает вопрос, почему другой код отслеживает логическое значение isSelected
вашего представления, а не событие, которое вызывает изменение состояния логического? Почему средний человек? Особенно посредник, который является частью вашей системы просмотра, а не вашей модели.
Подходящим решением является наличие Observable в вашей модели, который привязан к вашим двум представлениям ...
Лучше будет что-то вроде:
class CustomView: UIView {
var isSelected: Bool = false
}
class Example {
let viewA = CustomView()
let viewB = CustomView()
let disposeBag = DisposeBag()
func example(model: Observable<Bool>) {
disposeBag.insert(
model.bind(to: viewA.rx.isSelected),
model.map { !$0 }.bind(to: viewB.rx.isSelected)
)
}
}
extension Reactive where Base: CustomView {
var isSelected: Binder<Bool> {
Binder(base, binding: { view, isSelected in
view.isSelected = isSelected
})
}
}