【发布时间】:2017-09-21 08:00:28
【问题描述】:
我将 RxSwift 与 RxRealm 和 RxRealmDataSources 一起使用。我的领域对象绑定到表视图。我试图找到一种方法来根据输入到搜索栏中的查询来过滤它。你们有没有人做过这样的事情?
class ItemsViewController: UITableViewController {
let bag = DisposeBag()
let searchController = UISearchController(searchResultsController: nil)
let search = BehaviorSubject(value: "")
override func viewDidLoad() {
super.viewDidLoad()
searchController.searchResultsUpdater = self
definesPresentationContext = true
tableView.tableHeaderView = searchController.searchBar
bindTableView()
}
func bindTableView() {
let dataSource = RxTableViewRealmDataSource<Item>(cellIdentifier: "itemCell", cellType: UITableViewCell.self) { cell, ip, item in
cell.textLabel?.text = item.uuid
}
Observable.changeset(from: DataStore.sharedInstance.getObjects(Item.self))
.bind(to: tableView.rx.realmChanges(dataSource))
.addDisposableTo(bag)
}
}
extension ItemsViewController: UISearchResultsUpdating {
public func updateSearchResults(for searchController: UISearchController) {
search.onNext(searchController.searchBar.text ?? "")
}
}
【问题讨论】:
-
为什么不在
Observable.changeset(from: DataStore.sharedInstance.getObjects(Item.self))之后使用filter?
标签: ios swift realm uisearchcontroller rx-swift