我尝试在CoreLocation / MapKit项目中实现MVVM。我的主视图控制器仅从其他类(视图模型)派生数据并显示它们。没有在视图控制器中进行思考。
CoreLocation和MapKit委托方法都在不同的类中完成,这些类在应用程序启动时将数据传递给视图控制器。
应用程序启动后,模型类会在用户启动进程时准备要在地图上绘制的路径。即使路径成功确定,路径也不会被绘制,因为我无法将数据从模型传递回视图模型(MapKit类)。
即使我可以传递数据,视图控制器已经在应用程序启动时创建了地图视图,现在需要重新绘制它。
那么如何将数据从模型传递回视图模型并重绘我的地图视图?
P.S。我选择的编码是Swift
答案 0 :(得分:2)
您可以使用委派模式通知委托类模型已更改,也可以使用NSNotification
。如果多个观察者需要了解更新,后者的效果会更好。
然而,在我看来,MVVM模式并不能真正在iOS上运行,因为它不支持UI数据绑定,所以View-Model除了添加之外并没有真正购买任何东西复杂。 MVVM起源于Windows世界,其中存在UI数据绑定框架。