swiftswiftui

Multiple NavigationLink in SwiftUI


Can you have multiple NavigationLinks in SwiftUI? The following only displays the first Link:

struct Test : View {
    var body: some View {
        NavigationView {
            NavigationLink(destination: Text("First")) {
                Text("Visible")
            }
            NavigationLink(destination: Text("Second")) {
                Text("Invisible")
            }
            //EDIT: Also Invisible
            Text("Not rendered")
        }
    }
}

EDIT: Turns out everything under the first NavigationLink is not displayed


Solution

  • Put your views inside a VStack:

    struct Test: View {
      var body: some View {
        NavigationView {
          VStack {
            NavigationLink(destination: Text("First")) {
              Text("Visible")
            }
            NavigationLink(destination: Text("Second")) {
              Text("Invisible")
            }
            //EDIT: Also Invisible
            Text("Not rendered")
          }
        }
      }
    }