Програмування мишкою» у XCode 6 для Swift

Через нещодавно виникну потребу довелося писати під iOS, і я помітив сильний брак гайдів українською мовою навіть для елементарних дій на кшталт «причепити до натискання кнопки якусь дію», «рахувати дані з текстового віконця». Стаття для розробників-початківців під iOS, прошу таких під кат. Отже, для початку для відпрацювання прикладів

Створимо проект SingleView Application

  1. Вибираємо тип проекту
    swift
  2. Вибираємо назву
    swift
  3. Готово, можна приступати.

Далі трохи ускладнимо наш додаток

До:

перехід

Після (змінюємо назву класу та файлу):

xcode

До:

Отже, у нас тепер є два вікна, в одне з яких потрапити у користувача просто не вийде.

Перейдемо до програмування мишкою

Це найпростіша частина, робиться як і скрізь. Текстовому полю ми задали властивість Placeholder, воно дозволяє виводити «запрошення для введення», яке видно лише доки не введено жодного тексту. Але про властивості не сильно розповсюджуватимемося в рамках цієї статті, щоб не перевантажувати.

2. Додаємо наші елементи до класу контролера, для роботи з ними безпосередньо
3. Додаємо обробку подій елементів вікна

Для цього потрібні невеликі приготування. Спочатку клікаєте пкм по потрібному елементу, отримуєте таке вікно:

програмування
Список подій тут описувати не буду, вони, імхо, самоочевидні. Вибираєте потрібне вам ілівоюкнопкою миші перетягуєте його в код.

4. Невеликий приклад

Тут ми натисканням кнопки змінюємо текст Label на введений користувачем. З демонстрацією роботи на симуляторі під iPhone 6

Переходи між вікнами

1. Найпростіший варіант

Найпростіший варіант – безумовний перехід. Додамо для цього в наш проект кнопку «Перейти», натиснемо над нею ПКМ і протягнемо лінію до того View, на який ми хочемо отримати перехід (SpecialView в нашому випадку). Отримаємо запит про тип Segue, вибираємо там show - з рештою можете самі поекспериментувати. Аналогічно додамо SpecialView кнопку назад, і причепимо до неї перехід в MainView.

Як бачите, найпростіші переходи можна створювати не написавши жодного рядка коду. Але, звісно, ​​які завжди вистачає безумовних переходів.

2. Додамо умовний перехід

Найпростіший спосіб для цього – викликати наш перехід через код. Але ж у коді його немає. Та й після натискання кнопки все одно спрацьовувати буде, а цього не хотілося б. Вихід досить простий: видаляємо стару версію переходу, а нову ведемо не від нашої кнопки, а від жовтого кружечка самого ViewController, назвемо перехід MainToSpecial

Отже, нехай ми хочемо пускати користувача SpecialView тільки якщо поле для введення і Label містять однаковий текст. Для цього нам треба створити для кнопки подію натискання в контролері, в ньому перевіряти цю умову. Якщо воно виконується, виконаємо перехід за допомогою такого коду:

Як бачите, пускає на SpecialView тільки за однакових значень у полях, а ось назад — у будь-якому випадку, що нам і потрібно. У цьому можна й закінчити, проте покажу наостанок асинхронну перевірку умов переходу,т.к. імхо вона не менш важлива.

3. Асинхронний перехід із перевіркою умови на сервері

І залишається один неприємний, але важливий момент – показати користувачеві затримку. Для цього є спеціальний компонентUIActivityIndicatorView,причому ми відразу виставляємо йому властивість HidesWhenStopped щоб він був видно тільки при анімації, на початку асинхронного запиту ми його анімацію включаємо, а при отриманні відповіді в нашому коллбеку - вимикаємо.

UPD Додав сервер для тесту асинхронної версії в код класу сервера, можете тестувати ) НУ або залити на свій хостинг такий файл PHP і поміняти apiURL на посилання до вашого файлу.

А у нас тут можна отримати грант на тестовий період Яндекс.Хмари. Варто лише у полі «секретний пароль» запровадити «Хабр»