我正在使用 RXSwift 和 MVVM 为 iPad 制作应用程序。
我有一个带有 UICollectionView 和 ViewModel 的 UIViewController,它充当数据源和 collectionView 的委托。
收集单元格的部分功能是当点击按钮以显示弹出框时。现在使用 iOS 9 中更新的弹出框功能(可能更早),您需要在视图控制器中正常显示视图,并修改 popoverPresentationController。
现在,据我所知,您无法从 UICollectionViewCell 呈现 UIViewController。说得通。
但我认为这样做的唯一方法是拥有一个指向 ViewController 的委托。
查看类图(附加),viewModel 必须在单元格出列时设置委托。要做到这一点,ViewModel 必须知道要设置什么 ViewController 作为委托,我相当肯定这与 viewModel 的观点相悖。根据 MVVM(对于 iOS),视图模型不应该知道视图控制器。视图控制器可以知道视图模型。
所以我的问题是在 MVVM 之后执行此操作的最佳方法是什么?如果它需要将 dataSource/Delegate 移动到不同的类,我完全赞成。