Xamarin.forms iOS导航到另一个页面时关闭当前页面

时间:2020-09-30 05:50:42

标签: xamarin xamarin.forms xamarin.ios

我有一个xamarin.forms应用,该应用具有这样的导航。

MainPage -->(PushmodelASync) Second Page-->(PushModelAsync)--> Third page

我想做的是从Second Page导航到Third Page时,我需要Popmodelasync第二页。为此,我在OnDissappearing中调用了PopmodelAsync。在android上可以正常工作。但是在iOS中,发生的情况是第三页将打开和关闭,而不是第二页关闭

  protected async override void OnDisappearing()
    {
        base.OnDisappearing();           
        await Navigation.PopModalAsync();            
    }

如何解决?任何帮助表示赞赏。

1 个答案:

答案 0 :(得分:0)

您可以在调用PushPop时更改其顺序。

在当前场景中,我们最好先弹出当前页面,然后再推送到下一页。也许以相反的顺序调用它们将在Android中工作,但是在iOS中则行不通。因为在调用OnDisappearing方法时,应用程序会错过iOS中PageSecond的含义。因此,PopModalAsync将无效。我们可以先调用pop,然后调用push方法使其生效。

例如,在 PageSecond.cs 中:

public partial class PageSecond : ContentPage
{
    public PageSecond()
    {
        InitializeComponent();
    }

    private async void Button_Clicked(object sender, EventArgs e)
    {
        await Navigation.PopModalAsync();
    }

    protected override async void OnDisappearing()
    {
        base.OnDisappearing();
        await Navigation.PushModalAsync(new PageThird());
    }
}

所需的效果将在iOS中显示:

enter image description here

并在android中起作用:

enter image description here