如何从模态堆栈优化方式(特定)中删除页面?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何从模态堆栈优化方式(特定)中删除页面?相关的知识,希望对你有一定的参考价值。

我有四页第1页第2页第3页第4页。我使用push modal async来向前导航。当我点击按钮时,单击第4页使用下面的代码,它将导航到page2。

foreach (var page in Navigation.ModalStack)
{
    if (page is Page3)
    {
        await PopModalPage();
    }
}

foreach (var page in Navigation.ModalStack)
{
    if (page is Page4)
    {
        await PopModalPage();
    }
}

要从第4页导航到第2页我正在使用此代码任何优化的方式?请指导。

答案

解:

在您的第4页中,将以下代码添加到模式pop到page2:

private  void Button_Clicked(object sender, EventArgs e)
{
    gobackAsync();
}

public async void gobackAsync() {

    int totalModals = Application.Current.MainPage.Navigation.ModalStack.Count;

    //i set currModal = 1 here to back to page 2, If you wan to go back to 3, you can set currModal = 2, etc...
    // remember to add flase in PopModalAsync to aviod the animation.

    for (int currModal = 1; currModal < totalModals; currModal++)
    {
        await Application.Current.MainPage.Navigation.PopModalAsync(false);
    }
}

我在那里设置currModal = 1回到第2页,如果你想回到3,你可以设置currModal = 2等...

请记住在qazxsw poi中添加flash以避免动画。

以上是关于如何从模态堆栈优化方式(特定)中删除页面?的主要内容,如果未能解决你的问题,请参考以下文章

Android - 从堆栈中间删除特定片段不起作用

如何从后台弹出片段

Android从后台堆栈中删除事务

Android Reorder Fragment Backstack

如何检查视图控制器是不是以模态方式呈现或推送到导航堆栈上?

结束一个片段