EDIT: This has been fixed in iOS 13.3!
Minimal reproducible example (Xcode 11.2 beta, this works in Xcode 11.1):
struct Parent: View {
As a workaround, based on Chuck H's answer above, I've encapsulated the NavigationLink as a hidden element:
struct HiddenNavigationLink: View {
var destination: Content
@Binding var activateLink: Bool
var body: some View {
NavigationLink(destination: destination, isActive: self.$activateLink) {
EmptyView()
}
.frame(width: 0, height: 0)
.disabled(true)
.hidden()
}
}
Then you can use it within a NavigationView (which is crucial) and trigger it from a Button in a nav bar:
VStack {
HiddenNavigationList(destination: SearchView(), activateLink: self.$searchActivated)
...
}
.navigationBarItems(trailing:
Button("Search") { self.searchActivated = true }
)
Wrap this in "//HACK" comments so when Apple fixes this you can replace it.