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

时间:2019-04-10 13:09:34

标签: c# xamarin.forms

我有4页,第1页,第2页,第3页。第4页。我使用推模式异步进行导航。当我点击按钮时,第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页,我正在使用此代码除了此以外的任何优化方式?请进行指导。

1 个答案:

答案 0 :(得分:0)

解决方案:

在您的第4页中,将以下代码添加到模式弹出页面中:

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设置为此类,等等...

请记住在PopModalAsync中添加 flase 来动画。