I have the following code:
enum ContentViewRouter {
case details
}
struct ContentView: View {
var body: some View {
NavigationStack {
ZStack {
NavigationLink(value: ContentViewRouter.details) {
Text("Push")
}
}
.navigationDestination(for: ContentViewRouter.self) { destiantion in
switch destiantion {
case .details:
DetailsView()
}
}
.navigationTitle("TEST")
}
}
}
struct DetailsView: View {
@State var query = ""
var body: some View {
Form {
Section("TEST") {
Text("DETAILS")
}
}
.searchable(text: $query)
.navigationTitle("DETAILS")
}
}
When pushing the details view it creates this animation:
I want to get rid of this weird looking animation "glitch":
How can I get the push animation to come in smooth where the search bar doesn’t appear for a split second and then go away? Seems like it’s a bug or I am doing it wrong?
2
Answers
The problem of that I think because you have
.searchable
which will create search bar and currently conflict with your.navigationTitle
which both on the top. Maybe the search bar don’t know where to put it because of the.navigationTitle
Update: After doing some research, I see that maybe the behavior maybe wrong in search bar
.automatic
There are three ways to workaround
NavigationView
to split define navigationTitle and search barI found an easier solution by toggling the navigation bar visibility:
This worked for me:
The extension came from here