【发布时间】:2017-12-18 00:01:40
【问题描述】:
我有主要的UITableView 和一些填充的待办事项,使用了一组 Observables:
// on viewDidLoad
self.todosViewModel.todos.asObservable()
.bind(to: tableView.rx.items(cellIdentifier: "TodoViewCell", cellType: TodoTableViewCell.self)) { (row, todo, cell) in
cell.status.image = todo.getStatusImage()
cell.title.text = todo.title.value
cell.todoDescription.text = todo.description.value
cell.dueDate.text = String(describing: Utilities.dateFormatter.string(from: todo.dueDate.value))
}.disposed(by: disposeBag)
在另一个屏幕上,我可以添加/编辑数据,然后单击“保存”按钮添加新的待办事项或修改正在编辑的待办事项。这很好用,除了tableView 不会自动重新加载,迫使我在viewDidAppear 上调用tableView.reloadData(),这是在另一个屏幕被关闭时触发的。
所以,
当todosViewModel 变量更新时,我是否有一种本地方式自动重新加载表格?
编辑:
如果在待办事项的版本屏幕上我将todosViewModel 的value 属性与相同的值重新关联,它也可以工作:
self.todosViewModel.todos.value = self.todosViewModel.todos.value
这很难看,但我只知道如何使用其中一种方式重新加载 tableView。
【问题讨论】:
-
您确定
todos在您保存或编辑项目时发出任何事件吗? -
不是直接的。当我
append一个新的todo或将一个新值重新关联到基础todos时,它会起作用。当我编辑时,没有。我不知道应该如何向填写UITableView的模型发送事件。
标签: ios uitableview reactive-programming rx-swift reactivex