我需要路由页面 A -> B -> C -> D,一旦我进入 D,我需要使用导航按钮返回页面 D -> A。我正在尝试在 Xamarin Forms 中实现这个场景 IOS 和 Android .
请帮忙
我需要路由页面 A -> B -> C -> D,一旦我进入 D,我需要使用导航按钮返回页面 D -> A。我正在尝试在 Xamarin Forms 中实现这个场景 IOS 和 Android .
请帮忙
您的案例使用Navigation.PopToRootAsync ();
Navigation.PopToRootAsync ();此方法会弹出除RootPage导航堆栈之外的所有内容,因此使应用程序的根页面成为活动页面。
Navigation.PopAsync ();这会导致Page2Xaml实例从导航堆栈中删除,新的最顶层页面成为活动页面。
以下文档很好地解释了Xamarin.Forms导航。
https://docs.microsoft.com/en-us/xamarin/xamarin-forms/app-fundamentals/navigation/hierarchical
在“D”页面内部覆盖“OnBackButtonPressed”,在函数内部遍历您不再需要的页面并将它们一一删除。
伪代码:
protected override bool OnBackButtonPressed()
{
foreach (var page in Navigation.NavigationStack)
{
//find the pages you want to remove
Navigation.RemovePage(PageYouFound);
}
//Set new page
return base.OnBackButtonPressed();
}
您可以覆盖 OnBackButtonPressed 事件并使用 Navigation.PopToRootAsync
protected override bool OnBackButtonPressed()
{
Navigation.PopToRootAsync();
return base.OnBackButtonPressed();
}