我有一個UITableView,如果滿足某些條件,我想將其置於編輯狀態。切換編輯的主要方式是通過編輯按鈕。如何在RxSwift中將主題推送到自身而不創建無限循環
所以視圖元素我是
let tableView = UITableView()
let editButton = UIButton()
以及是否的tableView應該在編輯模式從反饋:
let editing = BehaviorSubject(value: false)
這將使用類似被掛在的tableView:
editing.subscribeNext { isEditing in
tableView.setEditing(isEditing, animated: true)
}
當點擊編輯按鈕時,我想要推新值到editing
,即發送到editing
的最近值的否定。最近的值可能是通過點擊editButton
設置的,或者它可能來自其他地方。
我不明白如何將按鈕按下的流與editing
的流組合起來,以這種方式允許這種方式沒有無限循環,例如,
Obervable.combineLatest(editButton.rx_tap.asObservable(), editing) { _, isEditing in
editing.onNext(!isEditing)
}
我意識到的tableView有editing
屬性,但我不想依賴於我要尋找一個更通用的解決方案,我可以重新使用在其他地方。我也不想追蹤實例var中的isEditing的值,甚至無法追蹤Variable(),因爲我在尋找無狀態,基於流的解決方案(如果這是可能的話)。
謝謝!
感謝分享,非常有幫助! – Rogare