Лекция 15 CS193P Winter 2015 — Modal (и Popover) Segues

Screen Shot 2015-09-28 at 8.24.54 PM

Лекция 15  сосредоточена на модальных View Controllers как для iPad, так и для iPhone.

Пол Хэгерти намеренно отложил рассмотрение модальных segues на конец семестра. Потому что, когда люди знакомятся с ними слишком рано, они им очень нравятся и они говорят :”О, я буду делать все модальным. Это так легко -создавать модальные segues.”

И действительно, их легко создавать, но нужно создавать их с осторожностью, потому что они блокируют то, что находится на эране. Пользователь бывает немного ошарашен появлением модального View Controller. Обычно пользователь предпочитает более осмысленные действия у экране, когда он может на что-то кликнуть и затем вернуться назад.

Но иногда ваше приложение не может продолжить работу без того, чтобы остановить пользователя и задать ему вопрос. Для этого случая очень подходят модальные View Controllers, которые всего лишь UIViewController, которые мы показываем модально.

На примере приложения Contacts (Контакты) Пол Хэгерти показывает как работают модальные  View Controllers. Затем обсуждается множество различных способов, какими модальные View Controllers появляются на экране. Рассказывается как установить модальный segue, особенно когда нужно презентовать модальный View Controller не от кнопки на storyboard, а, например, от callout (выноске) на Map View, которого нет на storyboard.

Рассматривается, как можно передать результаты из модального MVC обратно, в тот View Controller, который представлял этот MVC?

Далее следует продолжение демонстрационного примера Trax,в котором:

  1. мы делаем булавки (pins) на карте перемещаемыми (draggable) и редактируемыми
  2. создаем модальный segue к новому Edit Waypoint View Controller
  3. используем NSNotification для синхронизации текстовых полей с Моделью и паттерн работы с наблюдателями в View Controller, который может «уходить» с экрана,
  4. усовершенствуем работу с клавиатурой
  5. используем Popover на iPad и управляем адаптивные поведение на iPhone
  6. применяем для отображения визуальные эффекты (например, Blur — «размытость»)

При этом Пол Хэгерти демонстрирует многогранный возможности Swift: наблюдатели свойств {didSet}, расширение класса extension, вычисляемые свойства, работу с жестом long press и т.д. Процесс разработки реального и далеко нетривиального приложения Trax на Swift просто завораживает, когда Пол Хэгерти логически обосновывает каждую строку кода и «разговаривает» в коде даже с механизмом Autolayout, если ему нужна помощь Autolayout.

Лекция и слайды на английском языке находятся на  iTunes название “15. Modal Segues.”  

Код для демонстрационных примеров Trax Segue можно найти для Swift 1.2 на сайте Stanford, а для Swift 2.0 и Xcode 7 здесь.

Русский неавторизованный конспект лекции , хронометрированный через каждые 5 минут и представленный в PDF — файле, доступен на платной основе.