С незапамятных времен
Split View Controller и
Popover в iOS были доступны только на iPad.
Начиная с iOS 8, они теперь работают и на iPad, и на iPhone, благодаря концепции
Size Classes и их адаптивному поведению. Однако автоматическая адаптация, предложенная Apple «из коробки», чаще всего нас не устраивает и приходится писать небольшой дополнительный код, используя методы делегатов
UISplitViewControllerDelegate
и
UIPopoverPresentationControllerDelegate
. В данной статье мы будем исследовать адаптивные способности
Split View Controller и
Popover на примере очень простых практических приложений, работающих с сервером
Flickr.com, представляющим собой облачный сервис для хранения фотографий. Сама по себе эта задача имеет большой практический смысл, так как является часто встречающимся случаем, когда данные считываются с некоторого сервера и представляются затем ввиде связанных таблиц и изображений. Попутно мы будем демонстрировать “вживую” такие синтаксические конструкции Swift, как вычисляемые свойства c
{get}
и
{set}
, наблюдатели свойств
didSet{}
, функции высшего порядка
map, flatMap, filter
, вывод типа из контекста и перегрузку (overload) функций, совместное использование Swift и Objective-C кода, работу со структурами
struct
, использование хранилища
NSUserDefaults
и т.д. Но все же в этой статье акцент делается на более сложных конфигурациях адаптивных
Split View Controller и
Popover.
Впоследствие все приведенные в этой статье приложения вы сможете использовать в качестве шаблонов для разработки ваших приложений с похожими задачами.