You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Xamarin Forms中弹出模态页后无法立即推送新页面问题

解决PopModalAsync后PushAsync不生效的问题

问题原因

在模态页按钮点击事件中连续调用PopModalAsync和PushAsync时,模态页弹出操作尚未完全完成,导航栈状态未及时更新,导致后续的PushAsync无法正确触发。

解决方案

方案1:通过主线程延迟执行Push操作

将PushAsync放入主线程的异步调用中,确保模态页完全弹出后再执行页面推送:

private async void Button_Clicked(object sender, EventArgs e)
{
    await Navigation.PopModalAsync();
    Device.BeginInvokeOnMainThread(async () =>
    {
        await Navigation.PushAsync(new ListOfPlayers());
    });
}

方案2:从根页面导航栈执行Push操作

如果模态页是从根页面弹出的,可先获取根页面的导航实例,再执行推送:

private async void Button_Clicked(object sender, EventArgs e)
{
    var rootPage = Application.Current.MainPage as NavigationPage;
    await Navigation.PopModalAsync();
    await rootPage.Navigation.PushAsync(new ListOfPlayers());
}

内容的提问来源于stack exchange,提问作者GreenSL

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.05 05:57:34