Теоретическую часть A​ction​S​heet, Alert и UIAlertController Рассмотрим реальный пример работы  UIAlertController. У нас есть кнопка,  для установки рейтинга чего-либо. При нажатии на эту кнопку срабатывает метод rtae(). Внутри этого метода мы создаем UIAlertController. , в котором создаем два объекта UIAlertAction (это кнопки Save и Cancel) и одно …

Пример UIAlertController Read more »

Самое главное для понимания A​ction​S​heet и Alert это то, что это UIVewController, который отображается модально. Синтаксис написания обоих контроллеров — одинаковый. Различается лишь стиль, указанный в конструкторе UIAlertController.  A​ction​S​heet  служит для выбора пользователем больше чем двух действий. Он отображается внизу экрана …

A​ction​S​heet, Alert и UIAlertController Read more »

Unwind​ segue​ — это segue (переход), который в процессе этого самого перехода не создает новый MVC. Т.е. переход осуществляется в контроллер, который явно или косвенно презентует (presented) текущий контроллер. Примером этому могут быть например  UINavigationController. Все контроллеры в нем можно …

​Unwind​ S​egue​ Read more »

Если нужны ячейки с высотой под контент, то нужно выполнить следующий код: override func viewDidLoad() { super.viewDidLoad() tableView.estimatedRowHeight = tableView.rowHeight tableView.rowHeight = UITableViewAutomaticDimension }

UITextField — это как UILabel  только можно редактировать текст. Клавиатура появляется сама, когда UITextField становится “first responder”. Описать это можно как «сфокусировались на UITextField«. Это происходит автоматически, когда пользователь нажимает на UITextField.  Также можно послать сообщения becomeFirstResponder — в этом случае клавиатура появится resignFirstResponder — …

UITextField и клавиатура Read more »

Итак жизненный цикл контроллера начинает с создания. Как я уже писал раньше  — в 99% случаях создание происходит в storyboard, и «за сценой» происходит инициализация А что потом? А вот что: Подготовка  к переходу в контроллер Установка outlet свойств Появление …

View Controller Lifecycle, жизненный цикл View Controller Read more »

В 99% случаях мы будем создавать интерфейс с помощью сториборда (storyboard) — встроенного в XCode инструмента Interface Builder. Поэтому всем элементам в этом storyboard  нужно задавать идентификаторы, чтобы потом их найти и обработать. В коде эти идентификаторы нужно собирать в …

Создание интерфейса, storyboard Read more »

Предположим есть переход (segue) и он указывает на UINavigationController. Для того чтобы получить контроллер, который показывает UINavigationController, нужно обратиться к свойству visibleViewController // // proSwift.ru // var destination = segue.destinationViewController if let navCon = destination as? UINavigationController { destination = navCon.visibleViewController! }  

В каждом контроллере, который содержит множественную  MVC, есть свойство, которое содержит массив контроллеров, которые в нем присутствуют // // proSwift.ru // var viewControllers: [UIViewController] {get set} let navController = UINavigationController() var arrayOfControllers = [UIViewController]() arrayOfControllers = navController.viewControllers