What problem does it solve?
It solves the challenge of implementing consistent, maintainable page navigation in .NET MAUI apps by using Shell’s declarative hierarchy and URI-based routes.
Core Features & Use Cases
- Shell-based visual hierarchy: Use FlyoutItem, TabBar, Tab, and ShellContent to structure top-level navigation and tabs.
- Route-driven navigation: Navigate between pages (including detail pages) with
GoToAsync using absolute/relative routes and registered route names.
- Parameter passing & navigation guards: Pass values via query parameters (or object parameters) and prevent unsafe back navigation using async confirmation with navigation events.
- Common configuration outcomes: Ensure pages are created on demand via ContentTemplate, avoid duplicate route names, and inspect navigation state to debug route issues.
Use cases: setting up app navigation menus, adding top/bottom tabs, pushing detail pages, passing an ID into a details screen, and blocking “leave page” when unsaved changes exist.
Quick Start
Add an AppShell with a FlyoutItem/TabBar structure, register any detail routes in the AppShell constructor, then navigate between pages using Shell.Current.GoToAsync with awaited route strings and query parameters.