NEW: My new book Pro SwiftUI is out now – level up your SwiftUI skills today! >>

Issue with SwiftUI NavigationLink not working

Forums > 100 Days of SwiftUI

Hello everyone,

I'm currently working on a SwiftUI project as part of the "100 Days of SwiftUI" challenge, and I'm facing an issue with the NavigationLink. I have a list view where each row should navigate to a detail view when tapped, but nothing happens when I tap on the rows.

Here's the code I'm using for the NavigationLink:


Copy code

struct ContentView: View {

var body: some View {

    NavigationView {

        List {

            ForEach(items) { item in

                NavigationLink(destination: DetailView(item: item)) {









I have confirmed that the items array is populated with the correct data, and the DetailView is properly implemented. However, when I tap on a row, the destination view doesn't appear.

Am I missing something in my code or overlooking any requirements for NavigationLink to work properly? Any help would be greatly appreciated.

Thank you in advance!

Best regards, The Toilet Helper


It seems like your code is correct, and the issue may lie elsewhere. Here are a few things you can check to troubleshoot the problem with NavigationLink not working:

  1. Check the navigation stack: Make sure you have wrapped your initial view (ContentView) in a NavigationView. Without a NavigationView, the NavigationLink won't have a navigation stack to push the destination view onto.

  2. Confirm view hierarchy: Ensure that ContentView is the top-level view in your hierarchy and not nested within another view that might interfere with the navigation.

  3. Verify target view implementation: Double-check that the DetailView is implemented correctly and does not contain any code or modifiers that prevent it from being displayed.

  4. Test with a simpler example: Try creating a minimal example with just a single NavigationLink to see if it works. This can help isolate the issue and determine if it's related to the specific content or the overall setup.

  5. Test on a physical device or simulator: Ensure that you test the NavigationLink behavior on a physical device or simulator rather than relying solely on SwiftUI previews, as SwiftUI previews sometimes have limited navigation capabilities.

  6. Check for any conflicting modifiers: Review the modifiers applied to the List or Text views and ensure there are no conflicting modifiers or unexpected behavior that might interfere with the NavigationLink.

If none of these steps resolve the issue, it might be helpful to provide more details about the surrounding code or any error messages you're encountering. Additionally, consider consulting the SwiftUI documentation or reaching out to the SwiftUI community for further assistance.

Regards; David Johnson.


Hacking with Swift is sponsored by Judo

SPONSORED Let’s face it, SwiftUI previews are limited, slow, and painful. Judo takes a different approach to building visually—think Interface Builder for SwiftUI. Build your interface in a completely visual canvas, then drag and drop into your Xcode project and wire up button clicks to custom code. Download the Mac App and start your free trial today!

Try now

Sponsor Hacking with Swift and reach the world's largest Swift community!

Reply to this topic…

You need to create an account or log in to reply.

All interactions here are governed by our code of conduct.

Unknown user

You are not logged in

Log in or create account

Link copied to your pasteboard.