The link cannot be activated.

Hi all,

I am new to Swift and I have found an issue which I can't fix.

I use a TabView and if I change the views a few times, and go back to this view I get this error and I can't tab on any of the views any longer in the Navigation Stack.

The way to fix it, is to force close the app and reopen it.

Error message:

"A NavigationLink is presenting a value of type “NavigationItem” but there is no matching navigationDestination declaration visible from the location of the link. The link cannot be activated.

Note: Links search for destinations in any surrounding NavigationStack, then within the same column of a NavigationSplitView."

Code:

struct ToolsMainView: View {
    @State private var navigationPath = NavigationPath()
    
    var body: some View {
        NavigationStack(path: $navigationPath) {
            VStack {                
                ScrollView(showsIndicators: false) {
                    VStack {
                        ForEach(navigationItems) { item in
                            NavigationLink(value: item) {
                                HStack(alignment: .center, spacing: 12) {
                                    Image(systemName: item.icon)
                                    Text(item.title)
                                    Spacer()
                                    Image(systemName: "chevron.right")
                                }
                            }
                        }
                    }
                    .scrollTargetLayout()
                }
                .scrollTargetBehavior(.paging)
            }
            .navigationDestination(for: NavigationItem.self) { item in
                viewMenuItems(item)
            }
        }
        .scrollContentBackground(.hidden)
    }
    
    func viewMenuItems(_ tool: NavigationItem) -> some View {
        switch tool.menu {
        case .forms:
            return AnyView(View1())
        case .stage:
            return AnyView(View2())
        case .margin:
            return AnyView(View3())
        case .vat:
            return AnyView(View4())
        case .tvheight:
            return AnyView(View5))
        case .tvsize:
            return AnyView(View6())
        case .cable:
            return AnyView(View7())
        case .project:
            return AnyView(View8())
        case .tasks:
            return AnyView(View8())
        }
    }
}

Do you have any suggestions? Thank you

Replies

@gr3go You wrote:

I use a TabView and if I change the views a few times, and go back to this view I get this error and I can't tab on any of the views any longer in the Navigation Stack.

The code snippet above doesn't appear to use a TabView. Could you please provide the complete code snippet that reproduces the issue?