MvvmCross从TabLayout导航回去

时间:2018-09-27 08:33:35

标签: android xamarin xamarin.android mvvmcross

我正在使用MvvmCross 5.6.6。 我正在使用IMvxNavigationService进行导航。 导航以从TabLayoutViewModel查看选项卡的模型:

tasks.Add(NavigationService.Navigate<TabOneViewModel>());                               
tasks.Add(NavigationService.Navigate<TabTwoViewModel>());                               tasks.Add(NavigationService.Navigate<TabThreeViewModel>());
tasks.Add(NavigationService.Navigate<TabFourViewModel>());
await Task.WhenAll(tasks);

所有片段都使用:

[MvxFragmentPresentation(FragmentHostViewType = typeof(DamagePanelView), FragmentContentId = Resource.Id.content_frame, AddToBackStack = true)]

当我关闭主视图模型(TabLayoutViewModel)时,如何关闭(删除)所有选项卡的视图模型(TabOneViewModel,TabTwoViewModel,TabThreeViewModel,TabFourViewModel)?

1 个答案:

答案 0 :(得分:0)

您可以使用以下内容:

    public virtual Task<bool> Close(IMvxViewModel viewModel)
    {
        var args = new NavigateEventArgs(viewModel);
        OnBeforeClose(this, args);
        var close = ViewDispatcher.ChangePresentation(new MvxClosePresentationHint(viewModel));
        OnAfterClose(this, args);

        return Task.FromResult(close);
    }

只需在要关闭主视图模型的代码部分中对要关闭的每个页面执行for