struct ContentView: View {
@State var searchText: String = ""
var body: some View {
TabView {
Tab {
NavigationStack {
List {
Text("Hello!")
Text("Hello!")
Text("Hello!")
Text("Hello!")
Text("Hello!")
Text("Hello!")
}
.navigationTitle("Have a title")
.searchable(text: $searchText, placement: .toolbar)
.searchToolbarBehavior(.minimize)
.toolbar {
DefaultToolbarItem(kind: .search, placement: .topBarTrailing)
}
}
}
}
}
}
In iOS 26, this worked no problem. In iOS 27, this leaves the search bar either unable to collapse (when pressing the close button) or in a broken state where it cannot be opened again.
Hello @EthanRDoesMC
In iOS 26, this worked no problem
I took a look at your project, and tested the same code on iOS 26.5 (build 23F77) and saw a similar hang.
I want to make sure this is the same result you are seeing, and I'd like to communicate this to the teams that may see your report.
To make sure Apple sees exactly the same issue you are describing, can you include more information:
- A screen recording or logs that demonstrate the issue.
- Specific versions or build numbers when you noticed this code was working as expected. Include all software and hardware versions used in testing.
- Does this reproduce when the app is not attached to Xcode's debugger?
To test this: build and run the app once from Xcode, then either (1) stop the session and manually relaunch the app from the Home Screen/Springboard rather than pressing Run again, or (2) select Debug > Detach from [App Name] in Xcode's menu bar while the app is still running, then reproduce the hang.
If you need to capture logs in that state, use Console.app (connect the device, filter by your app's bundle ID/process name, per Apple's guidance on accessing device console logs) rather than relying on Xcode's debug console, since Xcode's console is a debugging session view and won't be available/attached once you've detached lldb.
Include the updated files and information in your report. Let me know in this thread once completed and I will make sure that report is routed to the correct team.
Thank you,
Travis