Впервые эта часть приложения загружает курсор строки поиска контроллера поиска, если это необходимо.Курсор UISearchController UISearchBar показывает первое использование, а не последующее
(Проблема) Когда поиск уволен, а затем (позже) повторно laoded, нет курсора:
Это повторяется только с загрузки/Dismissing, т.е. ничего, что, по-видимому, могло бы/не изменить оттенок вещей, заставив курсор быть цветом фона (как правило, это ответ на отсутствующий курсор, из SO Q & Как я видел по теме.) Тем не менее, ничего иначе f ails работать, это просто курсор, который исчезает.
Некоторые из них (возможно) осложняющих факторов:
- Этого ViewController, который загружает/выгружает UISearchController (и встраивают UISearchBar в название UINavigationController), составляет содержание VC в моем пользовательском контейнере VC. Иерархия: (1) UIWindow (2) UINavigationController (3) ContainerVC (4) ContainedVC [parent - это ContainerVC, этот VC выполняет загрузку/разгрузку UISearchController].
- Существуют различные обратные вызовы делегатов (UISearchController, UISearchBar), которые пытаются настроить поведение (например, скрыть кнопку отмены, остановить закрытие между ними), которые, надеюсь, не влияют на вещи, но FYI.
- «Разгрузка» (для остановки/срыва) включает в себя различные усилия, чтобы заставить его уйти, удалив панель поиска из заголовка, установив активный контроллер поиска = false и т. Д. (Так как это происходит после этого, он чувствует себя, вероятно, связано, таким образом, я пробовал различные перестановки в случае ничего не помогает. Нет такой удачи.)
Я сделал различные попытки иметь ребенка VC создать свой собственный SearchController, и/или использовать один на корневых VC и т. д. Кажется, что работают различные перестановки, но с этим же недостатком. (Как таковой, я чувствую, что ищу неправильное место для источника проблемы/решения.)
Я не могу исключить, что цвет курсора изменился, я не совсем понимаю, как он установлен/унаследованный, особенно учитывая, что у меня есть стек VC, и как его проверить в отладчике. Я думаю, что это так же просто, как я установил глобальный оттенок.
Примечание: Это приложение использует раскадровку с прямыми настройками и не использует внешний вид прокси много. Это говорит, что есть:
// Default tint for application...
UIApplication.sharedApplication().delegate?.window??.tintColor = mainBrandColor
UIToolbar.appearance().tintColor = mainBrandColor
... и я попытался с различными перестановками UISearchBar, UINavigationBar оттенков через внешний вид прокси ж/такое же поведение (первые работы, последующие не так много.) Глядя на это, в разное время (т.е. при работе, а когда нет) он показывает тот же цвет:
(lldb) po searchController.searchBar.tintColor
Примечание: отдельное использование UISearchController (когда вызывающий VC не является дочерним контейнером, но толкнул VC) НЕ демонстрирует эту проблему. Курсор остается правильного цвета.
Окружающая среда: Это iOS9.x в Swift на XCode 7.1.
Вот код, где homeVC является родителем/контейнер VC:
Я попытался с и без отложенной загрузки, и с уничтожением/воссоздании и нет.
Любые указатели/мысли о том, где искать/как устранять неполадки, будут оценены.
Это поможет, если вы могли бы разместить ссылку на суть всего этого кода ViewController в. Прежде всего, я хочу, если у вас есть какой-либо синтаксис блока в любом месте этого класса. Если это так, я хочу посмотреть, какой код выполняется в них. Я также хочу видеть, что этот класс является делегатом, и если какой-либо из методов обратного вызова из классов является делегатом, блокируют блоки завершения для выполнения обратного вызова. (Как и в NSURLSessionDataTask.) – CommaToast