我认为我的问题标题很清楚。 有关我正在使用MvvmCross vNext的信息..我知道我应该使用v3但是我仍然保持沉默,因为这个版本每周仍然提交...我宁愿等待一个真正稳定的版本。
我遇到的情况是我们使用NetworkViewModel来管理网络表示。它还负责检查服务器的连接状态。如果连接已关闭,ViewModel将发布我的视图订阅的登录消息。 接收它时,我创建了一个对话框(如MonoTouch.Dialog但绑定到我的ViewModel,所以我的NetworkViewModel的MvxTouchDialogViewController),我将其显示为模态视图(我正在使用MvxModalSupportTouchViewPresenter)。为了能够在同一个ViewModel上创建我的对话框,我已经向它应用了MvxUnconventionalViewAttribute,以防止它在启动时在同一个ViewModel类型上注册2 View。 然后我使用MvxShowViewModelRequest来创建我的MvxTouchDialogViewController的实例,并使用我的演示者的Show方法呈现它。
我的问题是,在这种情况下,我创建了一个新的NetworkViewModel实例来附加我的对话框。或者我想为我的模态对话重用相同的NetworkViewModel实例。
通过在当前NetworkViewModel实例上使用BindingInflate方法并指定登录对话框xml布局文件,Android中可以实现等效行为。
iOS有没有相同的内容?
谢谢,
-G。
答案 0 :(得分:1)
如果要覆盖mvx行为以使其不总是创建新的viewmodel,则可以覆盖viewmodel定位器以为一个或多个viewmodel类型提供自定义viewmodel查找。
有关详细信息,请参阅此问题/答案 - MvvmCross: Does ShowViewModel always construct new instances?