【发布时间】:2020-12-19 17:17:17
【问题描述】:
我正在尝试将 swift 应用程序从 mvc 转换为 mvvm。我已将大部分逻辑放在视图控制器后面的视图模型层中,但努力如何干净地调用 segue、alertcontrollers。
这些显然需要从视图控制器调用,但调用它们的逻辑是在 ViewModel 中完成的。我想不出一个优雅的解决方案来解决这个问题。
谢谢
【问题讨论】:
-
MVVM 没有提出如何解决导航的建议。你可以看看Viper architecture。在这里,“Router”实现了导航任务,它连接到“Presenter”(MVVM 中的 ViewModel)。您可能会认为“Segues”是较低级别的实现细节,并且您可能会在 MVVM 架构中添加一个 API,以执行导航而不提及 segue。