2016-12-31 4 views
1

В viewDidLoad моего пользовательского подкласса UITableViewController, я поставил navigationItem.titleView к searchBar о наличии UISearchController, который я инициализируется с nil для searchResultsController.UISearchController очищает UISearchBar текст, когда уволенный

Когда я нахожусь в строке поиска, введите текст и коснитесь скрытого содержимого, затем UISearchController деактивируется (как и ожидалось), и текст поиска, который я ввела, очищается (неожиданно).

Текст поиска также очищается (также неожиданно), когда я явно (программно) установил, что контроллер поиска неактивен. Чтобы обойти это, я сохраняю текст поиска до и устанавливаю его после отклонения контроллера поиска. Хотя он взломан, он работает.

let searchText = searchBar.text // #hack 
searchController.isActive = false 
searchBar.text = searchText  // #hack 

Для когда контроллер поиска автоматически убирается, я пытался что-то подобное с использованием UISearchControllerDelegate методов, то есть, сохраняя текст поиска в willDismissSearchController(_:) и установить его обратно в didDismissSearchController(_:). Но это решение по-прежнему показывает, что текст поиска очищается, а затем возвращается к тому, что было раньше.

Как легко сохранить текст в строке поиска, как это происходит при автоматическом отклонении контроллера поиска?

+0

uisearchbar delegate. – aircraft

+0

Как делегат панели поиска не позволит контроллеру поиска очистить свой текст? – ma11hew28

+0

Метод делегата uisearchbar у меня есть демо, но теперь я не рядом с компьютером – aircraft

ответ

Смежные вопросы