TabView powers persistent bottom navigation. NavigationStack manages push/pop hierarchical flows. Most real apps combine both.
| Feature | TabView | NavigationStack |
|---|---|---|
| Use case | Top-level shell | Drill-down flows |
| State persistence | Per-tab automatic | NavigationPath |
| Deep linking | Tab selection | Path restoration |
| Apple HIG pattern | iPhone shell standard | iPad sidebar friendly |
| iOS 18 enhancements | Sidebar adaptable | Path observability |
Use TabView as the app shell when users switch between top-level surfaces. Use NavigationStack inside each tab for drill-down flows. Combine them — it's the Apple-recommended pattern.
Yes — and you should. One NavigationStack per tab keeps state isolated and back stacks predictable.
Use it for iPad / Mac sidebar layouts. On iPhone it collapses to a NavigationStack automatically.