通过ContentPage.ToolbarItem跳转到的新页面无法通过导航栏返回

思密达 60 信誉分
2025-01-11T08:12:07.0033333+00:00

您好,我通过点击主页面的ToolbarItems下的按钮,跳转到的新页面不能返回到主页面,跳转后的新页面NavigationStack的数量是0,这是正常的吗,怎么能让它正常使用返回功能呢。

测试环境:.net8 , android api 33, oppo手机

    <ContentPage.ToolbarItems>
        <ToolbarItem x:Name="BtnNewPage"
                     Text="新页面"
                     IconImageSource="btn_add_64.png"/>
    </ContentPage.ToolbarItems>
//> C# MainPage.cs
//> 写在InitializeComponent之后的代码
BtnNewPage.Clicked += OnClickNewPage;

//> 点击事件
private void OnClickNewPage ( object? sender, EventArgs e )
{
    Navigation.PushAsync(new SubNewPage());
}

//> SubNewPage.xaml
<?xml version="1.0" encoding="utf-8" ?>
<ContentPage xmlns="http://schemas.microsoft.com/dotnet/2021/maui"
             xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
             x:Class="MWS.SubNewPage"
             Title="新页面"
             Shell.TabBarIsVisible="False"
             Shell.NavBarIsVisible="True"
             Shell.NavBarHasShadow="True">
    <VerticalStackLayout>
        <Label 
            Text="Welcome to .NET MAUI!"
            VerticalOptions="Center" 
            HorizontalOptions="Center" />
    </VerticalStackLayout>
</ContentPage>

//> SubNewPage.cs
public partial class SubNewPage : ContentPage
{
	public SubNewPage ()
	{
		InitializeComponent();
		//> NavigationStack的数量等于0
		var a = this.Navigation.NavigationStack;
	}
}
.NET MAUI
.NET MAUI
一种 Microsoft 开源框架,用于构建跨移动设备、平板电脑、台式机的原生设备应用程序。
123 个问题
0 个注释 无注释
{count} 票

1 个答案

排序依据: 非常有帮助
  1. 思密达 60 信誉分
    2025-01-11T10:01:34.3966667+00:00

    已解决,原因是Shell.Tab 里的Route设置错误导致的,

    错误的Route="Home/Views/HomeXXXPage"

    正确的Route="HomeXXXPage"

    0 个注释 无注释

你的答案

问题作者可以将答案标记为“接受的答案”,这有助于用户了解已解决作者问题的答案。