で初期化のUITableViewをリロード私は観測の配列を使用移入され、いくつかのトドスとメインUITableView
持っている:私は/編集データを追加し、保存」をクリックすることができ、別の画面でRxSwift - 自動観測
// 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)
を"ボタンを押して新しいToDoを追加するか、編集中のToDoを修正します。これは、tableView
が自動的にリロードされないようにして、他の画面が閉じられたときにトリガーされるをviewDidAppear
に呼び出さなければならないことを除いて、素晴らしいことです。
ので、
はその後todosViewModel
変数は更新されたとき、私は自動的にテーブルをリロードするためのネイティブ方法はありますか?
EDIT:
私が同じ値を持つtodosViewModel
のvalue
プロパティを再度関連付けるTODOの版の画面上の場合は、それも動作します:
self.todosViewModel.todos.value = self.todosViewModel.todos.value
かなり醜いですが、私は、これらの方法の1つを使ってtableViewをリロードする方法しか知りません。
アイテムを保存または編集するときに 'todos'が何らかのイベントを出すのですか? –
直接ではありません。新しい 'todo'を' '追加するか、新しい値を' todos'ベースに再結合すると、それは動作します。私が編集するとき、いいえ。私は 'UITableView'を塗り潰すモデルにイベントをどのように送るべきか分かりません。 – juniorgarcia