我试图在CoreLocation/MapKit项目中实现MVVM。我的主 View Controller 仅从其他类( View 模型)派生数据并显示它们。在 View Controller 中没有思考。
CoreLocation和MapKit委托(delegate)方法都是在单独的类中完成的,这些类在启动应用程序时将数据传递给 View Controller 。
应用启动后,当用户启动流程时,模型类会准备要在 map 上绘制的路径。即使已成功确定路径,也无法绘制路径,因为我无法将数据从模型传递回 View 模型(MapKit类)。
同样,即使我可以传递数据, View Controller 在应用程序启动时已经创建了 map View ,现在它需要重绘它。
那么如何将数据从模型传递回 View 模型并重绘 map View ?
附言我选择的编码是Swift
最佳答案
您可以使用委托(delegate)模式来通知委托(delegate)类模型已更改,也可以使用NSNotification
。如果多个观察者需要了解更新,则后者效果更好。
但是我认为,MVVM模式在iOS上并不真正起作用,因为它不支持UI数据绑定(bind),因此,除了增加了复杂性之外,View-Model并没有为您带来任何好处。 MVVM起源于Windows世界,那里有UI数据绑定(bind)框架。
关于ios - 将数据传回MVVM,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/33964427/