Stanford CS 193P iOS 7 Лекция 16 — Modal Segues, Text Fields, Alerts и Action Sheets (+iOS 9)

Screen Shot 2016-01-12 at 2.19.08 PM
Лекция 16 начинает с модальных View Controllers, которые захватывают весь экран на iPhone и представляются как Popover на iPad. Появление модальных View Controllers обеспечивается модальным Modal segue , а обратный возврат данных — связанным с ним отсоединяющий Unwind segue. Modal segue достаточно легко понять, а вот Unwind segue может показаться несколько запутанным. Профессор Хэгерти очень подробно рассказывает о создании Unwind segues, о том, когда можно применять Unwind segues, а когда — нет, о причинах их скрытности — они не рисуются на storyboard. О том, как установить свойства этих segues, несмотря на их скрытность. Комбинация слайдов и демонстрационного примера помогают понять не только как устроены эти Unwind segues, но и каково их участия в жизни модальных View Controllers.


Далее дается представление о текстовых полях UITextFields и о том, как управлять клавиатурой. Об использовании методов делегата UITextFields, которые позволяют убирать с экрана клавиатура, когда набор текста завершен.
Рассказывая о предупреждениях Alerts и списках действий Action Sheets, профессор Хэгерти, конечно, использует iOS 7 версию. Но начиная с iOS 8, когда впервые мы вошли в мир адаптивных интерфейсов, Alert (предупреждение) и Action Sheet (список действий) претерпели кардинальные изменения и теперь вообще имеют другой класс- UIAlertController с preferredStyle виде UIAlertControllerStyleAlert — и другую идеологию.Теперь класс UIAlertController  является просто subclass UIViewController, который представляется модально. UIAlertController заменяет как UIAlertView, так и UIActionSheet, тем самым унифицируя концепцию Alerts по всей системе.
Поэтому в русском неавторизованном конспекте этой лекции не только осуществлен перевод, но проведена адаптация материалов лекции к обновлениям  Alerts и Action Sheets, сделанным в iOS 8 и iOS 9.
Демонстрационный пример связан с улучшением приложения Photomania так, чтобы пользователь вашего прибора мог делать фотографии своей фотокамерой, снабжать ее дополнительной информацией, помещать в Core Data и отображать ее на карте. В этом демонстрационном примере пока отсутствует часть, связанная непосредственно с фотокамерой, но зато создается модальный View Controller для показа фотографии, сделанной пользователем, для снабжения этой фотографии заголовком title и подзаголовком subtitle, а также координатами latitude и longitude текущего местоположения прибора, для записи фотографии photo со всеми ее атрибутами в Core Data и отображения ее на карте. Все это выполняется с помощью модального segue и unwind segue для показа и получения обратной информации от модального View Controller, запрашивающего фотографию photo
Демонстрируется работа с текстовыми полями UITextFields, с Core Location, которая получила обновление в iOS 9, а также обновленные Alerts и Action Sheets. Демонстрационный пример будет продолжен в Лекции 17.
В этой же лекции демонстрационный пример в русском неавторизованном конспекте описывается и выполняется в iOS 9 и Xcode 7 с необходимыми комментариями по поводу отличий в iOS 7 и iOS 9.
Лекция и слайды на английском языке находятся на  iTunes название “16. Modal Segues, Text Fields, Aerts, and Action Sheets”  
Код для демонстрационных примеров Photomania Add Photo можно найти  здесь, а для iOS 9 и Xcode 9  (адаптивный интерфейс) на Github. В этом демонстрационном примере интерфейс имеет существенное различие для iPhone и iPad  и требует использование двух различных storyboard, каждая из которых в случае адаптивного интерфейса использует концепцию Size Classes, а их переключение осуществляется в зависимости от размере экрана. Идеи такого интерфейса изложены здесь.
Полный русский неавторизованный конспект лекции, хронометрированный через каждые 5 минут, представлен в PDF — файле на

Лекция 16 CS193P Fall 2013 -Winter 2014 .pdf