1 year ago

#370718

test-img

monkeyBoy

Why would an init cause a NavigationLink to fail in Swiftui?

I have two pieces of test code to check that things worked out. Basically I wanted to navigate from one view to a specific tag on a TabView page. Everything worked out until I put an init in the destination file. Is there a way to do this so adding an init won't break things? Here are the test files:

import SwiftUI

struct ContentView: View {
    
    @State var selectedView = ""
    
    var body: some View {
        
        NavigationView {
            NavigationLink("go", destination: PageTwo(selectedView: "three"))
                .foregroundColor(Color.black)
        }
    }
}

struct ContentView_Previews: PreviewProvider {
    static var previews: some View {
        ContentView()
    }
}

and

import SwiftUI

struct PageTwo: View {

    @State var selectedView = ""
    
  // Adding this breaks the link between the files ->  init(){}
 
    var body: some View {
        
        TabView(selection: $selectedView) {
            Button("Show Second View") {
                selectedView = "two"
            }
            .padding()
            .tabItem {
                Label("First", systemImage: "1.circle")
            }
            .tag("one")
            
            Button("Show First View") {
                selectedView = "one"
            }
            .padding()
            .tabItem {
                Label("Second", systemImage: "2.circle")
            }
            .tag("two")
            
            Button("Show First View") {
                selectedView = "one"
            }
            .padding()
            .tabItem {
                Label("Third", systemImage: "3.circle")
            }
            .tag("three")
        }
    }
}

struct PageTwo_Previews: PreviewProvider {
    static var previews: some View {
        PageTwo()
    }
}

Thanks for any help.

swift

swiftui

init

swiftui-navigationlink

0 Answers

Your Answer

Accepted video resources