- Пользователь нажимает на нижнюю панель управления поиском iOS 26.
- Отображается пользовательский интерфейс поиска (во время поиска я также показываю настраиваемое наложение «экрана поиска»)
- Пользователь вводит запрос
- Пользователь нажимает «Поиск» → я закрываю поиск и запускаю сетевой вызов (показать загрузку/ошибку/результаты).
- Я ожидаю, что строка запроса останется видимой в основном пользовательском интерфейсе как «текущий поиск».
Но после того, как я закрываю поиск, неактивный поиск в нижней панели iOS 26 Пользовательский интерфейс не отображает существующий запрос — он показывает только приглашение/заполнитель, хотя привязка все еще содержит запрос.
struct SearchTextVisibilityExample: View {
@State private var searchText = ""
@State private var showSearchMode = false
var body: some View {
NavigationStack {
ZStack {
VStack(spacing: 24) {
Text("Search Text in ViewModel:")
.font(.headline)
// This always shows the correct value
Text(searchText.isEmpty ? "(empty)" : searchText)
.foregroundStyle(.blue)
Spacer()
}
.padding()
if showSearchMode {
// This represents "search window"
VStack(alignment: .leading, spacing: 16) {
Text("Type in the system search field below. On iOS 26, the text is visible here while searching,")
Text("but may not be rendered in the inactive bottom-bar search UI after dismiss.")
.foregroundStyle(.secondary)
Spacer()
}
.padding()
.frame(maxWidth: .infinity, maxHeight: .infinity, alignment: .topLeading)
.background(.background)
.zIndex(1)
}
}
.animation(nil, value: showSearchMode)
.navigationTitle("Activity")
.navigationBarTitleDisplayMode(.inline)
.searchable(
text: $searchText,
isPresented: $showSearchMode,
prompt: "Search transactions"
)
.onSubmit(of: .search) {
showSearchMode = false
}
.toolbar {
if #available(iOS 26, *) {
DefaultToolbarItem(kind: .search, placement: .bottomBar)
}
}
}
}
}
Подробнее здесь: https://stackoverflow.com/questions/798 ... s-inactive
Мобильная версия