如何解决Mvvm跨关闭到视图模型
在MvvmCross中,有没有一种方法可以要求导航服务关闭特定的viewModel?
例如,假设我有3个视图模型
A B C
我已经从A导航到B到C。
A -> B -> C
在C视图中,我按下“完成”按钮,并想返回到视图A。
有没有办法在C viewModel中做类似的事情?
_navigationService.Close<A>(this);
解决方法
如果您使用的是Xamarin.Forms
(如果不告诉我,我会更新答案,因为它并不那么简单),则在IMvxNavigationService
中,您可以使用ChangePresentation(...)
方法提示对象,告诉框架您要做什么。
Task<bool> ChangePresentation(MvxPresentationHint hint,CancellationToken cancellationToken = default(CancellationToken));
Here,您将获得框架提供的不同的即用型提示。
要解决您的问题,您可以使用MvxPopPresentationHint
:
_navigationService.ChangePresentation(new MvxPopPresentationHint(typeof(A)));
或者如果A
是您的根ViewModel,则可以只使用MvxPopToRootPresentationHint
:
_navigationService.ChangePresentation(new MvxPopToRootPresentationHint());
HIH
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。