4

Я работаю над универсальным приложением, используя раскадровки, и я добавил UISearchBar и UISearchDisplayController в одно из моих табличных представлений. Я подключил все это, и вы можете искать в порядке. Проблема заключается в том, что я нажимаю новый контроллер представления в стек навигации. На iPhone это прекрасно, но на iPad это приводит к тому, что сдвинутый контроллер просмотра смещается под панель навигации (мне пришлось вручную сделать навигационную панель снова, чтобы вы могли вернуться).UISearchBar на iPad вид таблицы исчезает под панелью управления навигационной панелью

Затем, когда вы перейдете к исходному представлению таблицы, в котором выполнялся поиск, поиск по-прежнему активен, но UISearchBar теперь скрыт за панелью навигации, что означает, что нет возможности отклонить его, не удаляя запрос. Это также означает, что он больше не используется, поскольку вы не можете вернуться к нему.

Наверное, лучше всего проиллюстрировано с помощью некоторых скриншотов.

Вот как это выглядит, когда вы впервые открываете TableView:

enter image description here

Затем делает поиск в порядке:

Doing the search is fine

Щелчок через к следующему экрану, мы можем см. вопрос:

enter image description here

И затем обратно на исходный экран, по-прежнему делает поиск, но не в окне поиска:

Search box half-buried

Тогда, если удалить все из окна поиска, и избавиться от наложения, я могу видеть в окне поиска, когда я просматриваю таблицу вверх, но не могу ее достичь. Однако я не могу получить надежный захват экрана.

Я искал везде решение, но не смог его найти. Я пробовал звонить [self setNeedsDisplay] и [self setNeedsLayout] в методе viewDidAppear, но это, кажется, не имеет никакого эффекта. Кажется, он исправляет себя, если я изменяю ориентацию устройства, и я пытался воспроизвести то, что он сделал бы в этой ситуации, вызвав эти методы.

Структура IPad раскадровка: SplitViewController -> Навигационный контроллер ->UITabBarController ->UITableViewController (содержит UISearchBar etc.f) ->UITableViewController

ответ

1

Я представил этот вопрос Apple, DTS, и они ответили:

структура IPad раскадровка: SplitViewController -> Навигационный контроллер -> UITabBarController -> UITableViewController (содержит UISearchBar etc.f) -> UITableViewController

Дело в том, что ваш проект Archi tecture не соответствует нашим рекомендациям, которые: В разделе Интерфейсы контроллера комбинированного вида в каталоге контроллера просмотра для iOS: Однако при объединении контроллеров представлений важно соблюдать порядок сдерживания; действуют только определенные меры.Порядок удержания, от ребенка к родителю, заключается в следующем:

просмотр контента контроллеров и контроллеры вида контейнера, которые имеют гибкие границы (например, контроллер просмотра страницы) Навигационных внешний вид контроллер Панель вкладок контроллера Split-контроллер

в принципе, вы должны иметь структуру следующим образом: SplitViewController -> UITabBarController -> Навигационная эксплуатации контроллеров> UITableViewController (содержит UISearchBar etc.f) -> UITableViewController>

+0

я подобная проблема, фиксируется изменение навигационной панели от полупрозрачного до непрозрачного, и это внезапно Я начал работать - это может быть ios 7. –

+1

Привет Роб. У меня такая же проблема, но я не понимаю, что вы здесь говорите. Как это исправить? – Lucas

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