Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/97.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios RxSwift,MVVM-无法使用RxSwift绑定实现UITableViewDataSource方法_Ios_Swift_Mvvm_Reactive Programming_Rx Swift - Fatal编程技术网

Ios RxSwift,MVVM-无法使用RxSwift绑定实现UITableViewDataSource方法

Ios RxSwift,MVVM-无法使用RxSwift绑定实现UITableViewDataSource方法,ios,swift,mvvm,reactive-programming,rx-swift,Ios,Swift,Mvvm,Reactive Programming,Rx Swift,我正在使用RxSwift和MVVM实现地址的简单UITableView。我在视图控制器中创建了一个绑定,如下所示 viewModel.addressList.asDriver() .drive(tableView.rx_itemsWithCellIdentifier(reusableIdentifier, cellType: SavedAddressTableViewCell.self)) { [weak self] (row, viewModel, cell) in se

我正在使用RxSwift和MVVM实现地址的简单UITableView。我在视图控制器中创建了一个绑定,如下所示

viewModel.addressList.asDriver()
   .drive(tableView.rx_itemsWithCellIdentifier(reusableIdentifier, cellType: SavedAddressTableViewCell.self)) { [weak self] (row, viewModel, cell) in
        self?.setUpAddressCell(cell, row: (row + 1))
    }
    .addDisposableTo(disposeBag)
但是,当我尝试在我的应用程序中打开页面时,我不断遇到此错误

Maybe delegate was already set in `xib` or `storyboard` and now it's being overwritten in code.
我在谷歌上搜索,发现我必须将tableView.delegate和tableView.dataSource设置为nil

但是,我仍然需要一些UITableViewDataSource方法,如

canEditRowAtIndexPath
commitEditingStyle
用于删除地址

我应该如何实现这一点?提前感谢。

在上面写这行:

tableView.dataSource = nil

好吧,我找到了解决办法

使用RxDataSources

我真的不想用一个新的吊舱来解决这个问题,但我找不到替代的解决方案

好吧,我现在确实找到了另一个解决方案

使用


此函数是ReactSwift对CommittedItingStyle的包装(是的!),无论您使用CommittedItingStyle编写什么,现在都可以在此函数中编写。对于canEditRowAtIndexPath,我总是希望返回true,这是默认的返回值,即使我没有为此编写代码,所以我根本不必实现canEditRowAtIndexPath

啊,不,那不行。它会让你填充单元格,但不会帮助你实现我上面提到的删除动画功能。然后你会想使用或检查这一点,我自己找不到替代解决方案。谢谢你,伙计!
tableView.rx_itemDeleted