Skip to content

Commit 95ee9d0

Browse files
committed
Fixes problem with editing UITableView example. ReactiveX#768
1 parent ca831c7 commit 95ee9d0

File tree

1 file changed

+12
-1
lines changed

1 file changed

+12
-1
lines changed

RxExample/RxExample/Examples/TableViewWithEditingCommands/TableViewWithEditingCommandsViewController.swift

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -84,7 +84,14 @@ class TableViewWithEditingCommandsViewController: ViewController, UITableViewDel
8484
.observeOn(MainScheduler.instance)
8585

8686
let deleteUserCommand = tableView.rx_itemDeleted.map(TableViewEditingCommand.DeleteUser)
87-
let moveUserCommand = tableView.rx_itemMoved.map(TableViewEditingCommand.MoveUser)
87+
let moveUserCommand = tableView
88+
.rx_itemMoved
89+
// This is needed because rx_itemMoved is being performed before delegate method is
90+
// delegated to RxDataSource.
91+
// This observeOn makes sure data is rebound after automatic move is performed in data source.
92+
// This will be improved in RxSwift 3.0 when order will be inversed.
93+
.observeOn(MainScheduler.asyncInstance)
94+
.map(TableViewEditingCommand.MoveUser)
8895

8996
let initialState = TableViewEditingCommandsViewModel(favoriteUsers: [], users: [])
9097

@@ -171,6 +178,10 @@ class TableViewWithEditingCommandsViewController: ViewController, UITableViewDel
171178
return true
172179
}
173180

181+
dataSource.canMoveRowAtIndexPath = { _ in
182+
return true
183+
}
184+
174185
return dataSource
175186
}
176187

0 commit comments

Comments
 (0)