Лекция 7 продолжает тему множественных MVC, начатую в конце лекции 6. Очень подробно рассматриваются принципы функционирования Navigation Controller, который помимо основных функциональных возможностей, является адаптивной версией Split View для iPhone.
Связи между MVC осуществляются segues. Они всегда создают новый экземпляр вызываемого MVC и нуждаются в инициализации этого MVC, например, с использованием метода prepareForSegue. В лекции рассматриваются все типы segues.
Далее в лекции приводится большой демонстрационный пример Psychologist, в котором показывается создание адаптивного Split View как для iPad, так и для iPhone. Дан шаблон универсального кода для метода prepareForSegue в этом случае. Приводится пример выполнения segue в коде. Конечно, у Пола Хэгерти в курсе cs193p Winter 2015 ни один демонстрационный пример не обходится без применения Autolayout, и этот пример не исключение: вы узнаете новые приемы работы с Autolayout.
Наряду с тройкой — Tab Bar Controller, Split View Controller и Navigation Controller, которые являются UIViewControllers, рассматривается Popover, который — не UIViewController. Он появляется на экране, используя так называемый механизм Presentation Controller. И опять нам показывают демонстрационный пример Psychologist Popover, который демонстрирует возможности Presentation Controller делегата для того, чтобы вернуть Popover на iPhone возможность появление виде маленького «всплывающего» окошка. Демонстрация идет еще дальше, и мы видим, как можно «подгонять» размер окошка Popover под размер выводимого текста.
Попутно рассматривается такая впечатляющая концепция объектно-ориентированного программирования как полиморфизм View Controllers.
Лекция и слайды на английском языке iTunes название “7. Multiple MVCs”. Код для Демо «Psychologist» и «Psychologist Popover» для Swift 1.2 доступен на сайте Stanford. Код демонстрационных примеров «Psychologist» и «Psychologist Popover«для Swift 2.0 доступен на Github.
Дополнение к Лекции 7: Изменение адаптивности Popover в iOS 8.3
Русский неавторизованный конспект лекции 7, хронометрированный через каждые 5 минут, представлен в PDF — файле.