之前的建议还是正确的。
似乎这可以非常简单地内置到 Android、WP7 和 iOS 中
我可能错了或遗漏了一些东西,但是过去我尝试构建它时,简单性似乎很快变得复杂了:(
虽然在一个特定情况下看起来很简单,但对于一个通用框架,还有许多其他情况需要考虑——例如,当使用枢轴、选项卡、弹出窗口、模式、拆分视图等时——在这些多种情况下,标准方法可能不是完全通用。
尤其是 iOS,有时会使这种检测变得更加困难(尤其是在 UIViewController 可能位于或不在 NavigationController 中的一般情况下)。
更简单的方法是检测视图是否可见的事件并发出信号 - 但即使这似乎并不完全简单 - 在 iOS 中存在不会调用 ViewDidDisappear 的情况 - 此外,这些事件可能只是简单的不是您的应用需要响应的...
虽然您可能觉得您只需要一个轮子,但显而易见的事实是没有一个万能轮子——轮子有许多不同的样式和尺寸。我现在已经看到了很多 MvvmCross 应用程序......而且我还没有弄清楚标准应用程序的外观。一个应用程序中“显然”正确的设计和架构,可能与其他应用程序所采用的方法完全不同。
一般来说,我怀疑单个应用程序需要这种功能的地方,那么这将是在定义非常明确的场景中——例如,在已知的表示框架内具有已知的视图类型。在这些情况下,我怀疑为那个应用程序场景实施一些东西对于当时的应用程序开发人员来说是非常简单的。我还怀疑其中一些场景可以在某些应用程序之间共享——但我不确定一种代码模式是否适合所有人——甚至很多。
我非常非常高兴看到用户在写博客、github-post 或论坛-谈论他们在这方面的经验。像http://www.gregshackles.com/2012/11/returning-results-from-view-models-in-mvvmcross/这样的博客文章展示了如何在 Mvvm 之上应用和重用模式。
甚至可能从这些博客文章中,我们找到了一种在核心 mvvmcross(和其他)库中获得更多功能的方法——但对我来说,保持核心库尽可能轻巧、灵活和可扩展也很重要。
作为像你一样的人,谈论他们的跨平台 mvvm 体验,我尽我所能保持链接页面是最新的 - http://slodge.blogspot.co.uk/p/mvvmcross-quicklist.html - 希望将帮助人们分享想法、概念和代码。