ПРИМЕЧАНИЕ. Лично я никогда этого не делал, но вот моя теория:
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