我是RxSwift和MVVM的新手,我的旧项目过去曾通过“准备segue”在VC之间传递数据。目前,我已成功将RxSwift和MVVM集成到该项目中。
在VC之间传递数据的最佳实践是什么?
A)在VC1内部,-GoToAnotherVC()。简单创建Model2对象,传递数据
Model.valueA = Model2.valueA.
然后
DestinationVC.model = Model2
B]立即在VC1中创建Model2,使用Rx Magic绑定Model1.value和Model2.value
C)还有更好的方法吗?
这是一个相当广泛的主题,但我会尽量简化。对于屏幕过渡,您可能需要查看RxFlow框架:https://github.com/RxSwiftCommunity/RxFlow,我一直在使用该框架取得了很多成功。
第二件事是,您实际上并不想将数据从一个视图模型传递到下一个视图模型。相反,我建议使用某种工厂模式来创建视图模型,并在创建视图模型时通过依赖注入从模型层传递所有需要的对象。这样,每个视图模型都将能够从模型层检索所需的任何数据,而无需依赖其他视图模型。同样,这使得编写适当的单元测试成为一件容易的事。