首页 > 解决方案 > Xamarin Forms 在关闭 Current 后显示一个新页面

问题描述

嗨 Xamarin 开发人员,

所以我有一种情况,用户从页面 A 转到页面 B。

await Navigation.PushModalAsync(new PageB());

然后从页面 B 到页面 C,在这种情况下,页面 B 应该首先被关闭,然后页面 C 应该被呈现

await Navigation.PopModalAsync();
await Navigation.PushModalAsync(new PageC());

但是有了这个代码,页面 C 永远不会出现,你能帮我看看我做错了什么吗?

标签: c#xamarin.forms

解决方案


当您在被调用页面中执行 PopModalAsync() 时,它将在调用页面中触发 OnAppearing() 事件处理程序。从模态页面返回后要做一些事情,你需要这样的事情:

    public class PageA {
        private bool returnedFromModal = false;

        private async void ShowB_Clicked (object sender, EventArgs e) {
           returnedFromModal = false;
           await Navigation.PushModalAsync(new NavigationPage(new PageB()));
           returnedFromModal = true;
        }

        protected override async void OnAppearing() {
           base.OnAppearing();
           if (returnedFromModal) {
               returnedFromModal = false;
               await Navigation.PushAsync(new PageC());
           }
        }
    }

推荐阅读