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

.NET MAUI返回主页面后TabBar内Calendar Tab消失问题求助

问题分析

从HomePage跳转到TicketPage后返回,Intervention Tab下的Calendar选项消失,核心原因是导航路由写法错误,破坏了Shell的导航栈结构,导致Tab的子ShellContent无法正常恢复。

修复方案

1. 注册TicketPage路由

在AppShell.xaml.cs的构造函数中添加路由注册,让Shell能正确识别TicketPage:

public AppShell()
{
    InitializeComponent();
    Routing.RegisterRoute(nameof(TicketPage), typeof(TicketPage));
}

2. 修改HomePage的导航代码

你当前使用的InterventionTab/{nameof(TicketPage)}会让Shell直接替换InterventionTab的内容为TicketPage,而非在HomePage的导航栈中添加页面。改为相对路由,直接指定TicketPage即可:

// 移除InterventionTab前缀,使用相对路由跳转
await Shell.Current.GoToAsync($"{nameof(TicketPage)}?TicketID={SelectedTicket.Id}", false);

备选:使用完整绝对路由(若有需求)

如果必须使用绝对路径,需确保路径指向HomePage的子层级:

await Shell.Current.GoToAsync($"//MainTabBar/InterventionTab/HomePage/{nameof(TicketPage)}?TicketID={SelectedTicket.Id}", false);

3. 验证返回逻辑

从TicketPage返回时,使用默认返回按钮或调用await Shell.Current.GoToAsync(".."),即可回到HomePage,此时Intervention Tab下的Home和Calendar选项会正常显示。

原理说明

在.NET MAUI Shell中,Tab下的多个ShellContent属于该Tab的子导航结构。直接通过Tab路由跳转新页面会覆盖原有子ShellContent;而相对路由是在当前ShellContent(HomePage)的导航栈中添加页面,不会影响Tab的原有结构,返回时自然能恢复原来的Tab内容。

内容的提问来源于stack exchange,提问作者Jean Ivan Steven

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.22 15:23:20