I'm getting really strange results when pushing views onto a NavigationView stack and using buttons. This happens in the latest Xcode beta. Sample code:
struct TestView: View {
var body: some View {
NavigationView {
VStack {
NavigationLink("To view 2", destination: View2()) // Doesn't work
NavigationLink("To view 3", destination: View3()) // Works
}
.navigationTitle("View 1")
.navigationBarTitleDisplayMode(.large)
}
}
}
struct View2: View {
var body: some View {
VStack {
NavigationLink("To view 3", destination: View3())
}
.navigationTitle("View 2")
.navigationBarTitleDisplayMode(.large) // Setting to .inline makes it work
}
}
struct View3: View {
var body: some View {
VStack {
Button("Button 1") { print("Button 1") }
Button("Button 2") { print("Button 2") }
Button("Button 3") { print("Button 3") }
Button("Button 4") { print("Button 4") }
Button("Button 5") { print("Button 5") }
Spacer() // Removing this makes it work
}
.navigationTitle("View 3")
.navigationBarTitleDisplayMode(.inline)
}
}
There are three views. View1 has links to View2 and View3. View2 has a link to View3. View3 has a number of buttons.
If I go View1 -> View3, everything works. If I go View1 -> View2 -> View3, the first 2-3 buttons don't work.
If I remove the Spacer() from View3, it works. If I change the navigationBarTitleDisplayMode of View2 to .inline, it works.
This looks like a bug to me. Are there any workarounds?