MvvmCross检测请求关闭或后退按钮按下

MvvmCross检测请求关闭或后退按钮按下,mvvmcross,Mvvmcross,我发现这个主题说MvvmCross无法检测RequestClose或使用按下后退按钮: 按BackkeyInside viewmodels键 2012年5月以来有什么变化吗?为什么MvvmCross没有内置此功能?我不想重新设计轮子,它似乎可以非常简单地构建到Android、WP7和iOS中。如果我没有找到解决方案,我将最终建立它。以前的建议仍然正确 这似乎可以非常简单地构建到Android、WP7和iOS中 我可能错了或遗漏了什么,但在过去我尝试构建这个时,简单性似乎很快变得复杂:( 虽然在

我发现这个主题说MvvmCross无法检测RequestClose或使用按下后退按钮: 按BackkeyInside viewmodels键


2012年5月以来有什么变化吗?为什么MvvmCross没有内置此功能?我不想重新设计轮子,它似乎可以非常简单地构建到Android、WP7和iOS中。如果我没有找到解决方案,我将最终建立它。

以前的建议仍然正确

这似乎可以非常简单地构建到Android、WP7和iOS中

我可能错了或遗漏了什么,但在过去我尝试构建这个时,简单性似乎很快变得复杂:(


虽然在一个特定的情况下它看起来很简单,但对于一般的框架,还有许多其他的情况需要考虑——例如使用枢轴、选项卡、弹出窗口、模态、拆分视图等,并且在这多种情况下,标准方法可能并不完全通用。 尤其是iOS,有时会使这种检测变得更加困难(特别是在UIViewController可能位于或不位于NavigationController内部的一般情况下)

更简单的方法是检测并发送事件信号,以确定视图是否可见-但即使这样似乎也不完全简单-在iOS中,ViewDidEnglish不会被调用-此外,这些事件可能根本不是应用程序需要响应的事件

虽然你可能觉得你需要的只是一个轮子,但显而易见的事实是,没有一个通用的轮子——轮子有很多不同的样式和尺寸。我现在看到了很多MvvmCross应用程序……我还没有弄清楚一个标准的应用程序是什么样子的。很明显,一个应用程序中正确的设计和架构是什么,看起来可能完全不同租给其他人的方法


一般来说,我认为如果个别应用程序需要此类功能,那么这将出现在定义非常明确的场景中,例如,在已知的表示框架中使用已知的视图类型。在这些情况下,我怀疑对于当时的应用程序开发人员来说,仅为该应用程序场景实现某些功能将是非常直接的还怀疑其中一些场景可以在某些应用程序之间共享,但我不确定一种代码模式是否适合所有应用程序,甚至可能适合许多应用程序

我非常非常高兴看到用户在写博客、github帖子或论坛时谈论他们在这方面的经验。类似这样的博客帖子展示了如何在Mvvm之上应用和重用模式

甚至可能我们从这些博客文章中找到了一种在核心mvvmcross(和其他)库中获得更多功能的方法——但对我来说,让核心库尽可能轻巧、灵活和可扩展也很重要


正如你一样,当人们谈论他们的跨平台mvvm体验时,我会尽我最大的努力使链接页面保持最新,希望这将有助于人们分享想法、概念和代码。

感谢Stuart的全面回答。也许我的设想很简单,只是因为我的问题范围很窄。我可能不得不激动起来所有这些平台和游戏都要确保事件按照我的预期进行。在WP7/W8中,有OnNavigatedTo。在Android中,有Resume。在iOS中,我会依赖UINavigationController。是的,在这个范围内,你可能会没事,我认为你不必添加太多代码来实现你所需要的。尽管我怀疑Back按钮的问题在上,您可能希望覆盖WP和Droid中的后台处理程序-这些也为您提供了取消的选项。