SwiftUI navigation destination is not lazy. In other words: the destination “view controller” (and all of its resources!) are constructed when you create a navigation button, not when it gets pushed onto the stack. Is this fixed?
Asked on 06/11/2025
1 search
Yes, the issue with SwiftUI navigation destinations not being lazy has been addressed. In the session titled "What’s new in SwiftUI" at WWDC 2025, it was mentioned that SwiftUI now delays loading the contained views until they're about to appear. This behavior is particularly beneficial when using lazy stacks inside ScrollViews, as it helps improve performance by not loading views until necessary. You can find more details in the session What’s new in SwiftUI (08:08).

What’s new in SwiftUI
Learn what’s new in SwiftUI to build great apps for any Apple platform. We’ll explore how to give your app a brand new look and feel with Liquid Glass. Discover how to boost performance with framework enhancements and new instruments, and integrate advanced capabilities like web content and rich text editing. We’ll also show you how SwiftUI is expanding to more places, including laying out views in three dimensions.

Optimize SwiftUI performance with Instruments
Discover the new SwiftUI instrument. We’ll cover how SwiftUI updates views, how changes in your app’s data affect those updates, and how the new instrument helps you visualize those causes and effects. To get the most out of this session, we recommend being familiar with writing apps in SwiftUI.

Explore concurrency in SwiftUI
Discover how SwiftUI leverages Swift concurrency to build safe and responsive apps. Explore how SwiftUI uses the main actor by default and offloads work to other actors. Learn how to interpret concurrency annotations and manage async tasks with SwiftUI’s event loop for smooth animations and UI updates. You’ll leave knowing how to avoid data races and write code fearlessly.