UISearchBar + UITableView + UINavigationController проблема - PullRequest
0 голосов
/ 08 августа 2010

Это продолжение этого вопроса: UINavigationController + UITableView + UISearchBar + UISplitViewController

Есть ли способ сделать так, чтобы приведенное выше решение не помешало получению результатов?В моем случае вы видите, что весь список всплывает (во время анимации), когда вы отключаете поиск в viewWillDisappear, и если вы делаете это в viewDidDisappear, то кажется, что это слишком поздно, и следующий вид снова находится ниже / ontopбар.Любое другое решение?

Ответы [ 2 ]

0 голосов
/ 02 ноября 2010

Я решил исправить это, изменив местоположение панели поиска (вместо того, чтобы переходить через панель навигации, она привязана к таблице, как во входящей электронной почте). Это устранило проблему и сделало ее больше похожей на приложения Apple.

0 голосов
/ 15 сентября 2010

ОК, я получил ваш ответ-

Вот шаги, которые сработали для меня [содержащие некоторый псевдокод]:

1) Поскольку вы ищете, вы наверняка уже переопределитеShouldReloadForSearch - просто добавьте фрагмент кода, который сохраняет / хранит forSeachString.

2) Этот код может немного отличаться в зависимости от вашего приложения, но суть этого шага в том, что вам нужноочистить сохраненную строку поиска [установить на ноль], если результаты поиска не загружены.Я сделал это в моем UITableViewSource.У меня есть 2 конструктора - один для полного набора данных, а другой для отфильтрованного набора данных [результатов поиска].Поэтому я просто установил его в null в своем конструкторе полного набора данных.Да, вы могли бы сделать это по-другому, без сомнения, но я так и сделал.

3) Далее, сделайте как в исходном состоянии «ответ» и вызовите SetActive - [self.searchDisplayController setActive:NO];.Они выступали за отмену ViewDidAppear.Я не сделал этого ... Я сделал это сразу после того, как я нажал следующий UIViewController в моем RowSelected переопределении.

4) Последнее, в вашем UIViewController, к которому прикреплен UISearchDisplayController - проверьте сохраненный поискстрока и, если она существует, выполните следующее: 1) снова вызовите SetActive, НО на этот раз с истинным параметром, т.е. setActive:YES ... затем 2) установите для текста searchBar сохраненное значение строки поиска.Я сделал это в переопределении ViewWillAppear.

Короче говоря ... это сработало для меня И поддерживает результаты поиска.Установка текста панели поиска в шаге 4 является ключевым моментом ... это эффективно заставляет фильтр сохраняться.

Надеюсь, это кому-то поможет

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...