У нас есть панель поиска в заголовке таблицы. Когда пользователь дважды набирает его на iOS 7, он исчезает. Кто-нибудь есть предложения, что мы делаем неправильно?Двойной кран UISearchBar с делегатом поиска в iOS 7 заставляет UISearchBar исчезнуть
ответ
После многих проб и ошибок я обнаружил, что при поиске searchDisplayController поиск поиска исчезает, поэтому я снова ввел строку поиска в заголовок таблицы, и это сработало для меня.
- (void)searchDisplayControllerDidEndSearch:(UISearchDisplayController *)controller
{
self.searchingFetchedResultsController = nil;
if (floor(NSFoundationVersionNumber) > NSFoundationVersionNumber_iOS_6_1) {
[self.tableView insertSubview:self.searchDisplayController.searchBar aboveSubview:self.tableView];
}
return;
}
Надеюсь, это поможет.
У меня тоже такая ошибка. –
благодаря Прия, что, кажется, работает так, в основном: - (Недействительными) searchDisplayControllerDidEndSearch: (UISearchDisplayController *) контроллер { если (IS_IOS7_OR_GREATER) { [self.tableView insertSubview: self.searchDisplayController.searchBar aboveSubview: self.tableView]; } } –
Удивительно, но это действительно помогло, однако, грязное решение, и мне действительно не нравится, что я должен его использовать. Проблема возникает, когда пользователь снова забирается в уже оживляемое окно поиска, где другой ответчик получает пустую таблицу результатов в searchDisplayController, заставляя ее немедленно закрыть. – igraczech
(я отправил это же ответ на Troubles with UISearchBar \ UISearchDisplayViewController, который, кажется, как дубликат этого вопроса.)
я столкнулся с теми же проблемами, и заметил, что searchDisplayControllerDidEndSearch
был вызываются дважды. В первый раз супервизор self.searchDisplayController.searchBar
- это UITableView
, а во второй раз он по-прежнему UIView
.
С ответом Priya, я беспокоиться о непреднамеренных последствиях или ненужных накладных расходах от повторной установки подвида каждый времени поиска бара дважды постучали, и я также беспокоиться о том, что разрыве с будущей версиями IOS. К счастью, мы можем воспользоваться SuperView странности, как это:
- (void)searchDisplayControllerDidEndSearch:(UISearchDisplayController *)controller {
if (self.tableView != self.searchDisplayController.searchBar.superview) {
[self.tableView insertSubview:self.searchDisplayController.searchBar aboveSubview:self.tableView];
}
}
Если бы я должен был догадаться, что происходит, то UISearchBar
автоматически создает временный UIView
как его надтаблицы, когда она активна - это вид, представляемый при поиск выполняется. В то время как UISearchBar
уволен, супервизор возвращается к UITableView
, который он имел до этого, , если не был уволен так быстро, что он никогда не был правильно инициализирован, и в этом случае он очищается неправильно, а UITableView
никогда не получает UISearchBar
назад как его ребенок.
Это решение по-прежнему не идеальное, и я думаю, что Apple должна делать что-то другое в своих приложениях, потому что их панель поиска UX чувствует себя немного лучше. Я думаю, было бы лучше не обрабатывать второй кран в первую очередь, пока не будет готов UISearchBar
. Я попытался использовать другие методы UISearchBarDelegate
для этого, но я не смог найти подходящий крючок, чтобы переопределить текущее поведение.
Просто наткнулся на эту ошибку. Что делать, если вы проверяете, является ли «окно» нулевым? Таким образом, вы знаете, что это не в иерархии представлений, и вам не нужно жестко кодировать проверку равенства. –
- 1. IOS 7 UISearchBar UISearchBarIconSearch
- 2. iOS 7 UISearchBar правое расстояние
- 3. UISearchBar с твердым цветом в iOS 7+
- 4. Настройка UISearchBar в iOS 7
- 5. Курсор невидимый в UISearchBar iOS 7
- 6. Как изменить UISearchBar в iOS 7
- 7. Воспроизведение приложения Quora iOS 7 UISearchBar
- 8. Графическая проблема с UISearchBar на iOS 7
- 9. UITextField в UISearchBar в iOS 7
- 10. IOS: Автозаполнение поиска с использованием UISearchbar
- 11. UISearchbar в iOS 6 и 7
- 12. Проблема UISearchBar с iOS7
- 13. IOS - Настройка кнопки UISearchBar
- 14. iOS - Передвинуть UISearchBar программно
- 15. UISearchBar скрывается в iOS 8
- 16. Плохой доступ с UISearchBar в tableHeaderView iOS 7
- 17. UISearchBar Facebook app style iOS 7
- 18. iOS Parse UISearchBar
- 19. UISearchBar - окраска текста поиска
- 20. UISearchbar исчезает, когда в UIScrollView
- 21. UISearchBar Кнопка поиска
- 22. UIWebView с UISearchBar для поиска
- 23. Проблемы с внешним видом UISearchBar в iOS 7
- 24. MapKit с UISearchBar
- 25. UISearchBar iOS 8 уточнение
- 26. IOS: UISearchBar появляется тонированное
- 27. IOS Неуклюжий UISearchBar Анимация
- 28. Неприятности с UISearchBar \ UISearchDisplayViewController
- 29. Отмена и очистка кнопок UISearchBar, не работающих в iOS 7
- 30. UISearchBar не работает даже с установленным делегатом viewDidLoad
Проходит ли он под панелью навигации? У меня есть панель поиска на несколько просмотров и отлично работает. – User382
Я тоже получаю ту же проблему. Я попытался удалить следующие строки из кода. self.edgesForExtendedLayout = UIRectEdgeNone; self.navigationController.navigationBar.translucent = NO; Решает проблему. Но интерфейс нарушается. – Priya