首页 > 解决方案 > 是否可以弹出一个模式页面然后立即推送一个新页面?

问题描述

我已经尝试过了,但它不起作用

    private async void SignUpLink_OnTapped(object sender, EventArgs e)
      {
        await Navigation.PopModalAsync();
        await Navigation.PushModalAsync(new SignUp());
      }

标签: xamarinxamarin.forms

解决方案


模态页面对象一旦被弹出就会被销毁,因此您可以使用此解决方法,因为当您使用 PopModalAsync() 时,它将在调用页面(您从中呈现模态页面的那个页面)中触发 OnAppearing() 事件)。因此,要在从模态页面返回后做某事,在您的情况下,这似乎只是呈现另一个模态页面,您可以:

public class NonModalCallingPage
{
    private bool ReturnedFromModalPage = false;


    private async void YourButtonClickedToOpenFirstModal (object sender, EventArgs e)
    {
        ReturnedFromModalPage = false;
        await Navigation.PushModalAsync(new NavigationPage(new FirstModalPage()));
        ReturnedFromModalPage = true;
    }

    protected override async void OnAppearing()
    {
        base.OnAppearing();

        if (ReturnedFromModalPage)
        {
            ReturnedFromModalPage = false;
            await Navigation.PushModalAsync(new SignUp());
        }
    }
}

推荐阅读