Navigation (.NET 11): Shell route templates and Apple page handlers - #3457
Conversation
PoliCheck Scan ReportThe following report lists PoliCheck issues in PR files. Before you merge the PR, you must fix all severity-1 and severity-2 issues. The AI Review Details column lists suggestions for either removing or replacing the terms. If you find a false positive result, mention it in a PR comment and include this text: #policheck-false-positive. This feedback helps reduce false positives in future scans. ✅ No issues foundMore information about PoliCheckInformation: PoliCheck | Severity Guidance | Term |
|
Learn Build status updates of commit 7c39c91: ✅ Validation status: passed
For more details, please refer to the build report. |
PoliCheck Scan ReportThe following report lists PoliCheck issues in PR files. Before you merge the PR, you must fix all severity-1 and severity-2 issues. The AI Review Details column lists suggestions for either removing or replacing the terms. If you find a false positive result, mention it in a PR comment and include this text: #policheck-false-positive. This feedback helps reduce false positives in future scans. ✅ No issues foundMore information about PoliCheckInformation: PoliCheck | Severity Guidance | Term |
|
Learn Build status updates of commit 8eb56ae: 💡 Validation status: suggestions
docs/fundamentals/shell/navigation.md
For more details, please refer to the build report. Note: Your PR may contain errors or warnings or suggestions unrelated to the files you changed. This happens when external dependencies like GitHub alias, Microsoft alias, cross repo links are updated. Please use these instructions to resolve them. |
There was a problem hiding this comment.
Pull request overview
Documents .NET MAUI (.NET 11 Preview 7) navigation updates by adding new guidance for Shell route templates (path parameters in Routing.RegisterRoute) and documenting the iOS/Mac Catalyst TabbedPage default switch to TabbedViewHandler, with migration/fallback steps.
Changes:
- Added
ShellRoute templates documentation (syntax, constraints, registration, navigation, precedence, restrictions) and cross-references from related sections. - Added iOS/Mac Catalyst
TabbedPagehandler change documentation and a compatibility-renderer fallback snippet. - Added migration guidance for iOS
TabbedPagecustom renderers and summarized both features indotnet-11.md.
Show a summary per file
| File | Description |
|---|---|
| docs/whats-new/dotnet-11.md | Adds .NET 11 Preview 7 release notes entries for Shell route templates and iOS/Mac Catalyst TabbedPage handler change. |
| docs/user-interface/pages/tabbedpage.md | Documents the new default TabbedPage handler on iOS/Mac Catalyst plus an explicit compatibility-renderer fallback. |
| docs/migration/custom-renderers.md | Adds a migration section for iOS/Mac Catalyst TabbedPage custom renderer scenarios (handler mapper + fallback registration). |
| docs/fundamentals/shell/navigation.md | Adds a new Route templates section and updates related navigation guidance with monikered callouts and cross-references. |
Copilot's findings
- Files reviewed: 3/3 changed files
- Comments generated: 2
8eb56ae to
ec31d7e
Compare
PoliCheck Scan ReportThe following report lists PoliCheck issues in PR files. Before you merge the PR, you must fix all severity-1 and severity-2 issues. The AI Review Details column lists suggestions for either removing or replacing the terms. If you find a false positive result, mention it in a PR comment and include this text: #policheck-false-positive. This feedback helps reduce false positives in future scans. ✅ No issues foundMore information about PoliCheckInformation: PoliCheck | Severity Guidance | Term |
|
Learn Build status updates of commit ec31d7e: 💡 Validation status: suggestions
docs/fundamentals/shell/navigation.md
For more details, please refer to the build report. Note: Your PR may contain errors or warnings or suggestions unrelated to the files you changed. This happens when external dependencies like GitHub alias, Microsoft alias, cross repo links are updated. Please use these instructions to resolve them. |
ec31d7e to
ab53dd0
Compare
PoliCheck Scan ReportThe following report lists PoliCheck issues in PR files. Before you merge the PR, you must fix all severity-1 and severity-2 issues. The AI Review Details column lists suggestions for either removing or replacing the terms. If you find a false positive result, mention it in a PR comment and include this text: #policheck-false-positive. This feedback helps reduce false positives in future scans. ✅ No issues foundMore information about PoliCheckInformation: PoliCheck | Severity Guidance | Term |
|
Learn Build status updates of commit ab53dd0: 💡 Validation status: suggestions
docs/fundamentals/shell/navigation.md
For more details, please refer to the build report. Note: Your PR may contain errors or warnings or suggestions unrelated to the files you changed. This happens when external dependencies like GitHub alias, Microsoft alias, cross repo links are updated. Please use these instructions to resolve them. |
ab53dd0 to
96c447c
Compare
…TabbedPage handlers Documents .NET MAUI 11 Preview 7 navigation changes: - Shell path route templates, including constraints, catch-all and mixed segments, parser restrictions, and parameter delivery. - NavigationPage and TabbedPage now use handlers on iOS and Mac Catalyst, with compatibility renderer fallback and migration guidance. - Corrects the .NET 11 handler table, which listed the superseded NavigationRenderer and TabbedRenderer for iOS and Mac Catalyst. Verified against the release/11.0.1xx-preview7 branch. FlyoutPage still uses PhoneFlyoutPageRenderer on iOS and Mac Catalyst and is unchanged here. Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com> Copilot-Session: d3a19c75-df1e-4d74-bfd1-bf0168b79405
96c447c to
4f3b2ba
Compare
PoliCheck Scan ReportThe following report lists PoliCheck issues in PR files. Before you merge the PR, you must fix all severity-1 and severity-2 issues. The AI Review Details column lists suggestions for either removing or replacing the terms. If you find a false positive result, mention it in a PR comment and include this text: #policheck-false-positive. This feedback helps reduce false positives in future scans. ✅ No issues foundMore information about PoliCheckInformation: PoliCheck | Severity Guidance | Term |
dotnet#3457 now supplies the NavigationPage sections. Match its precise wording so the two articles agree: a re-pushed page is one that was previously popped, and the toolbar change applies to ToolbarItem objects whose Order property is Secondary. Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com> Copilot-Session: 35c845e8-c26a-4489-b9de-2c1d32638c6d
|
Learn Build status updates of commit 96c447c: 💡 Validation status: suggestions
docs/fundamentals/shell/navigation.md
For more details, please refer to the build report. Note: Your PR may contain errors or warnings or suggestions unrelated to the files you changed. This happens when external dependencies like GitHub alias, Microsoft alias, cross repo links are updated. Please use these instructions to resolve them. |
PoliCheck Scan ReportThe following report lists PoliCheck issues in PR files. Before you merge the PR, you must fix all severity-1 and severity-2 issues. The AI Review Details column lists suggestions for either removing or replacing the terms. If you find a false positive result, mention it in a PR comment and include this text: #policheck-false-positive. This feedback helps reduce false positives in future scans. ✅ No issues foundMore information about PoliCheckInformation: PoliCheck | Severity Guidance | Term |
|
Learn Build status updates of commit 4f3b2ba: 💡 Validation status: suggestions
docs/fundamentals/shell/navigation.md
For more details, please refer to the build report. Note: Your PR may contain errors or warnings or suggestions unrelated to the files you changed. This happens when external dependencies like GitHub alias, Microsoft alias, cross repo links are updated. Please use these instructions to resolve them. |
PoliCheck Scan ReportThe following report lists PoliCheck issues in PR files. Before you merge the PR, you must fix all severity-1 and severity-2 issues. The AI Review Details column lists suggestions for either removing or replacing the terms. If you find a false positive result, mention it in a PR comment and include this text: #policheck-false-positive. This feedback helps reduce false positives in future scans. ✅ No issues foundMore information about PoliCheckInformation: PoliCheck | Severity Guidance | Term |
|
Learn Build status updates of commit 33fc2ed: 💡 Validation status: suggestions
docs/fundamentals/shell/navigation.md
For more details, please refer to the build report. Note: Your PR may contain errors or warnings or suggestions unrelated to the files you changed. This happens when external dependencies like GitHub alias, Microsoft alias, cross repo links are updated. Please use these instructions to resolve them. |
Summary
Documents three .NET MAUI 11 Preview 7 changes:
Routing.RegisterRouteaccepts required, optional, defaulted, constrained, catch-all, and mixed path parameters.NavigationPagehandler on iOS and Mac Catalyst:NavigationPageusesNavigationViewHandlerby default instead ofNavigationRenderer, with behavior changes and a compatibility fallback.TabbedPagehandler on iOS and Mac Catalyst:TabbedPageusesTabbedViewHandlerby default instead ofTabbedRenderer, with preserved behavior and a compatibility fallback.Preview 7 What's New integration is intentionally excluded and is owned by #3458.
Files changed
docs/fundamentals/shell/navigation.mddocs/user-interface/pages/navigationpage.mddocs/user-interface/pages/tabbedpage.mddocs/migration/custom-renderers.mdNavigationRendererandTabbedRenderersubclasses.docs/user-interface/handlers/index.mdNavigationPageandTabbedPagewhile retainingPhoneFlyoutPageRendererforFlyoutPage.All version-specific content is gated for
>=net-maui-11.0. No TOC change is required because all articles already exist.Source verification
The canonical source is
release/11.0.1xx-preview7, not the laternet11.0branch tip.Shell route templates
Grounded in dotnet/maui#35110,
RouteTemplate.cs,Routing.cs,RouteRequestBuilder.cs,ShellNavigationManager.cs, andShellRouteTemplatesTests.cson the Preview 7 release branch.NavigationPage handler
Grounded in dotnet/maui#36109 and the final release-branch registration:
The handler is unconditional on iOS and Mac Catalyst.
NavigationRendererremains available for explicit fallback. The documented migration-sensitive behavior is source-backed:Appearingis raised before the native push;NavigatedTois deferred untilViewDidAppear.UIMenuoverflow button instead of the renderer's bottom toolbar.TabbedPage handler
Grounded in dotnet/maui#36507 and the final release-branch registration:
The handler is unconditional on iOS and Mac Catalyst.
TabbedRendererremains available for explicit fallback.Important Preview 7 boundary
FlyoutPagedid not move toFlyoutViewHandlerin Preview 7. The final release branch still contains:dotnet/maui#36676 merged into
net11.0, but it is absent from the Preview 7 release-branch compare and isn't claimed in these docs.Sample dependency
The route-template section uses the durable sample URL:
/samples/dotnet/maui-samples/navigation-shell-route-templatesThe URL is supplied by dotnet/maui-samples#777, which is at
b752d128db48e09838e574cb74d1e4901718e482and has passed local builds plus all 12 DevFlow route checks on final MAUI11.0.0-preview.7.26406.9.The sample itself has been correct throughout. Every blocker on #777 has been a CI toolchain gap, and both remaining ones are now fixed and merged:
NU1102during restoreMicrosoft.Maui.Controls11.0.0-preview.7.26406.9andMicrosoft.Extensions.Logging.Debug11.0.0-preview.7.26381.103published to NuGet.orgCS1705onJava.Interop, Version=99.61.0.0setup-dotnetto the exact SDK11.0.100-preview.7.26381.103.NET for iOS (26.5.11997-net11-p7) requires Xcode 26.6. The current version of Xcode is 26.3.xcode-selectinbuild-pr.ymlandbuild-all.ymlAfter #778 merged, the SDK-mismatch class of failure disappeared: the following #777 run had zero
NU1102and zeroCS1705errors, andbuild (windows-latest)passed. Onlybuild (macos-26)remained red, solely on the Xcode version. #779 addresses exactly that, replacingXcode_26.3.appwithXcode_26.6.appin both workflows onmain.No #777 run has yet executed with both fixes in effect — its newest result predates #779, and the branch is currently behind
main. So the outstanding item is simply a definitive fresh #777 CI run.Remaining gate, in order:
Merge the shared-workflow SDK pin.Done in Use custom renderers in .NET MAUI #778. Restore and theJava.Interopmismatch are cleared, and Windows CI passes.Merge the Xcode-selection workflow change.Done in Migrating a Xamarin.Forms app to .NET MAUI #779.build-pr.ymlandbuild-all.ymlnow select Xcode 26.6.navigation-shell-route-templatesslug.Don't merge this PR until #777 merges and the sample URL resolves, otherwise the published article ships a 404 link. No docs change is needed at any step — the durable URL is already correct.
Overlap with #3117
PR #3117 also touches
tabbedpage.md. The content sections don't overlap; onlyms.datemay require a one-line conflict resolution for whichever PR merges second.Validation
Internal previews