Всплывающее окно с табличным представлением в строке поиска, Swift 2

Я пытаюсь манипулировать местами Google и автозаполнением, об автозаполнении мест Google Я получил результаты, но я хочу поместить результаты в панель поиска с табличным представлением перед картами Google, как всплывающее окно. Но я только что нашел примеры с панелью поиска и представлением таблицы и всем остальным за ними. Я ищу foward сделать что-то вроде изображения ниже.

Пример всплывающего окна с табличным представлением перед картами

Любая помощь будет оценена по достоинству.


person Claudio Djohnnatha    schedule 10.04.2016    source источник
comment
Я считаю, что tableView, который отображает только часть экрана, представлен как всплывающее окно (это определенный тип перехода). Вы должны создать viewController или tableViewController и представить его в виде всплывающего окна. Всплывающие окна работают только на iPad, поэтому, если это не iPad, они будут отображаться модально. Я бы посмотрел видео на YouTube о том, как представить всплывающее окно, подобное этому: youtube.com/watch ?v=48UA06EwfrM   -  person Dan Levy    schedule 10.04.2016
comment
ООО Спасибо. Я вижу что-то подобное в Iphone, хотя предложение делает в Iphone, я просто показываю картинку в Ipad, потому что так яснее видно, что я хотел бы сделать. В Iphone табличное представление, вызываемое строкой поиска, было немного прозрачным перед картой, но я не знал названия действия, такого как всплывающее окно. буду искать по этому поводу. Я ценю внимание, и если у вас есть другой совет, я хотел бы увидеть это.   -  person Claudio Djohnnatha    schedule 10.04.2016
comment
Вы хотите сказать, что на iPhone, когда вы нажимаете на строку поиска, вы хотите, чтобы tableView отображался поверх контента, уже отображаемого на экране? Это возможно на iPhone! Он просто не будет отображаться как часть экрана, tableView будет отображаться на всем экране, пока пользователь не нажмет кнопку «Отмена» или ячейку tableView.   -  person Dan Levy    schedule 10.04.2016
comment
Да, это так. Я хотел бы, чтобы tableView отображался поверх содержимого, потому что я только что видел примеры с TableView и панелью поиска и фильтровал их. Я хотел показать табличное представление перед картами, когда вы нажимаете на строку поиска.   -  person Claudio Djohnnatha    schedule 10.04.2016
comment
Я знаю, что есть видео на YouTube, но я не мог найти его. Я бы попробовал поискать что-то вроде отображения tableView при нажатии панели поиска.   -  person Dan Levy    schedule 10.04.2016
comment
Отобразите контроллер табличного представления внутри контейнера, расположенного внутри вашего основного контроллера представления.   -  person cyril    schedule 10.04.2016


Ответы (2)


ПРИМЕЧАНИЕ. Лично я никогда этого не делал, но вот моя теория:

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

скриншот

Итак, что бы я сделал, так это установить UISearchBar на любой окружающий его класс. Затем реализуйте свои методы делегата, чтобы при вызове любого из этих методов, показанных выше на рисунке, окружающий класс переходил к UIPopoverPresentationController, который, в свою очередь, будет иметь внутри себя UITableView. (Всплывающее окно буквально «выскакивает» на остальной части экрана.)

Вам нужно будет убедиться, что класс, который вы установили в качестве делегата, реализует протокол UISearchBarDelegate. Это будет выглядеть примерно так:

class Foo: UISearchBarDelegate {
    /* stuff */
}

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

Удачи.

РЕДАКТИРОВАТЬ: Чтобы ответить на комментарий Дэна Л. на первоначальный вопрос, на самом деле возможно иметь всплывающее окно, не переходя в режим модальности на iPhone (или любом компактном экране). Вы должны установить класс представления в качестве делегата UIPopoverPresentationController, а затем реализовать метод делегата следующим образом:

func adaptivePresentationStyleForPresentationController(controller: UIPresentationController) -> UIModalPresentationStyle {
    return UIModalPresentationStyle.None
}

Все, что делает код, — это предотвращение того, чтобы всплывающее окно когда-либо становилось модальным.

person jake    schedule 10.04.2016

То, что я искал, было поповер. Я хотел бы использовать всплывающее окно, как я упоминал ранее, я обнаружил некоторые решения, подобные здесь:

person Claudio Djohnnatha    schedule 17.05.2017