gpt4 book ai didi

maui - 从 .NET MAUI 应用程序中的堆栈中删除导航页面

转载 作者:行者123 更新时间:2023-12-03 07:54:55 36 4
gpt4 key购买 nike

我正在使用AppShell在我的 .NET MAUI 应用程序中,场景如下:

我有Page1 , Page2Page3定义为我的主选项卡 AppShell -- 见下文:

<FlyoutItem Title="Home" Icon="home.png">
<Tab Title="Page 1" Icon="icon1.png">
<ShellContent Route="Page1" ContentTemplate="{DataTemplate local: Page1}" />
</Tab>
<Tab Title="Page 2" Icon="icon2.png">
<ShellContent Route="Page2" ContentTemplate="{DataTemplate local: Page2}" />
</Tab>
<Tab Title="Page 3" Icon="icon3.png">
<ShellContent Route="Page3" ContentTemplate="{DataTemplate local: Page3}" />
</Tab>
</FlyoutItem>

我点击选项卡 3 并转到 Page3 。然后我导航到 Page4然后从那里到Page5填写表格。我通过单击按钮等页面元素导航到第 4 和第 5 页。 Page4 的路线和Page5定义于 AppShell.xaml.cs -- 见下文:

...
Routing.RegisterRoute(nameof(Page4), typeof(Page4));
Routing.RegisterRoute(nameof(Page5), typeof(Page5));

填写完表单后,我想将用户发送至Page2还要删除 Page4Page5从堆栈中。

我尝试了以下方法,但效果不完全正确:

var route = $"//../../{nameof(Page2)}";
await Shell.Current.GotoAsync(route);

这确实会将用户发送至 Page2在我提交表单后,但似乎没有删除 Page4Page5从堆栈中。所以,如果我点击Page3在选项卡栏上,我仍然显示 Page5而不是Page3 。那是因为最初,我必须 Page5通过此路径:

Page3 => Page4 => Page5 .

如何确保删除 Page4Page5从导航堆栈?

最佳答案

您希望清除堆栈,然后进入 Page2。

根据文档,这很简单:

await Shell.Current.GotoAsync($"//{nameof(Page2)}");

毛伊岛外壳导航:

"//route" ... The matching page will REPLACE the navigation stack.

关于maui - 从 .NET MAUI 应用程序中的堆栈中删除导航页面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/76277821/

36 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com