039. Андрей Соловей «MVC на примере приложения адресной книги»

Автор Elena Batratskaya
039. Андрей Соловей «MVC на примере приложения адресной книги»

Вот еще один пример.

Вам необходимо сделать адресную книгу небольшое предложение в котором два экрана 1 этот список контактов здесь в таблице будет расположено имена и фамилии тех кто записан у вас книги нажимаем на какую-то фамилию открывается второй экран который содержит детальное описание поможем отредактировать поля и вернулся назад при этом все изменения должны сохраняться то есть мы меняли имена и фамилии они должны поменяться и на. Первом экране и так. Какие данные для работы такого приложения нам нужны было бы хорошо завести объект хранящей информацию об одной в адресной книге.

Пусть — это будет структура комплект для такого рода данных намного проще работать в s-class из-за того, что поля структуры легко копировать в копии мы можем редактировать всё, что надо.

И — это никак не повлияет на исходный объект и там дальше ещё нам необходим адресная книга по сути — это просто массив контактов для описания мы используем класс чтобы адресная книга была общая для больших экранов атлас как раз не является ссылочным типом языке Swift. Все изменения которые мы сделаем в адресной книге на втором экране будут доступны с первого начнёт собирать наше предложение с первой экрана. Как вы уже знаете он будет состоять из View Controller в качестве проще всего использовать таблицу — это класс White w1k ничего не мешает вам использовать любой другой подход например связку классов eurostek uiscrollview и бы ещё что-то другое сейчас — это сильно не важно потому, что нам нужно разобраться как работать с данными приложение они стихотворения. Зачем саму адресную книгу она будет выполнять роль модели данных теперь заполни её контактами пока мы не знаем как загружать хранимые данные. Поэтому просто запишу надо статические вот такие три. Контакта на этом этапе уже созданы три компонента нашей архитектуры model-view-controller движемся дальше представим, что пользователь нажал на контакт и команда попала в методе так контакт индекс получаем контакт из объекта адресной книги по индексу потом создаем detail View Controller он будет показывать данные новый контакт чтобы viewcontroller имел доступ к адресной книге передадим в. Конструктор объекта адрес буквы и покажем details View controllers использование методов процентов у нас есть два контроллера оба. Не используют одну и ту же модель данных адресной книге плюс структуру для контакта в книге трезвый контроллер ссылается на копию выбранного контакта. Сейчас посмотрим как может быть устроен этот контроллер тут. Должна ссылка на адресную книгу. Эбби контакта с которым мы будем работать добавим конструктор он просто принимает эти поля и сохраняет их внутри класса. Обратите внимание на то, что в конструкторе в любом случае необходимо вызывать Super init здесь мы используем в стандартной конструктор класса uiviewcontroller передадим в оба поляне для того чтобы контроллер создал с параметрами по умолчанию настрой себе можно иметь в виду. Вот — это часть вы уже можете сделать самостоятельно поэтому пойдём дальше добавляем пару методов которые будут изменять данные положим, что они будут вызываться когда пользователь что-то здесь интерфейсе. Ты просто обновить локальную структуру данных контактов. Так безопаснее если мы допустим захотим отменить наши действия осталось добавить detail View Controller действие по кнопке Close тут всё не сложно ещё в массиве контактов индекс контакта с таким же это, что наш если нашли просто меняем его на тот с которым. Мы работали в контроллере если не нашли то можем считать, что мы создали новый контакт. Поэтому просто добавляем его в конец массива и закрываем экран с использованием метода dismiss. Давайте ещё раз после взаимодействия с пользователем обновились. Поля с именем и адресом локальные моделью. После нажатия кнопки Close мы сохранили локальные изменения в общем модель данных то есть в адресную книгу и закрыли, осталось дело за малым обновить содержимое 1 экрана Contacts View Controller — это обновление вызвать. Каждый раз при вызове метода viewwillappear если обновление написано правильно то новые данные просто покажется пользователя на этом всё мы разобрались. Как можно передавать данные между экранами пёс.

0 комментариев
0

Читайте также