Нативная разработка мобильных приложений



Download 3,69 Mb.
Pdf ko'rish
bet190/228
Sana21.07.2022
Hajmi3,69 Mb.
#834838
1   ...   186   187   188   189   190   191   192   193   ...   228
Bog'liq
Нативная разработка мобильных приложений

Assistant Editor
(Помощник редакто
-
ра) в Xcode. Щелкните кнопку 
Assistant Editor
(Помощник редактора) вверху 
справа в окне проекта. В результате откроется исходный код 
CatalogViewCon­
troller
.
Теперь, когда контроллер представления активен в обоих окнах, наведите 
указатель мыши на табличное представление, нажмите клавишу 
Ctrl
и, удер
-
живая ее, нажмите левую кнопку мыши. Перетащите соединение в окно кода, 
как вы делали это, подключая кнопку перехода к экрану каталога в предыду
-
щей главе, прямо под определение класса 
CatalogViewController
, как показано 
ниже, и отпустите кнопку мыши:
class CatalogViewController: UIViewController {
// Перетащите связь сюда, в эту строку
override func viewDidLoad() {
super.viewDidLoad()
// Выполните здесь дополнительные настройки представления.
}
}
Появится модальный диалог с вопросом, желаете ли вы создать выход, опре
-
деляющий связь между контроллером и конкретным представлением, или 
действие для обработки управляющего события (например, нажатия кнопки). 
Оставьте все как есть и дайте новому выходу имя 
tableView
.
Теперь определение 
CatalogViewController
должно выглядеть так:
class CatalogViewController: UIViewController {
@IBOutlet weak var tableView: UITableView!
override func viewDidLoad() {


Динамические данные в представлениях списков 

297
super.viewDidLoad()
// Выполните здесь дополнительные настройки представления.
}
}
Мы добавили в раскадровку связь между контроллером представления и на
-
шим табличным представлением. Это необходимо для настройки источника 
данных в табличном представлении внутри класса контроллера. Вот как это 
делается:
class CatalogViewController: UIViewController {
@IBOutlet weak var tableView: UITableView!
lazy var dataSource: ListDataSource = {
return ListDataSource()
}()
override func viewDidLoad() {
super.viewDidLoad()
tableView.dataSource = dataSource
}
}
Рассмотрим данный код подробнее.
Первое, на что следует обратить внимание, – мы добавили в 
CatalogViewCon­
troller
новое свойство 
dataSource
с отложенной инициализацией (
lazy
). Опе
-
ратор 
lazy
откладывает создание экземпляра объекта до первой попытки 
обратиться к свойству. Это общепринятая практика для источников данных, 
потому что для их создания и инициализации может потребоваться значи
-
тельное время. В нашем случае используется легковесный источник данных, 
но сам прием стоит того, чтобы взять его на вооружение. Кроме того, оператор 
lazy
позволяет добавить код инициализации. В данном случае мы просто соз
-
даем новый экземпляр 
ListDataSource
.
Также мы добавили новый код в 
viewDidLoad
. Этот метод является одним из 
обработчиков событий жизненного цикла представления; когда он вызывает
-
ся, можно с уверенностью утверждать, что все выходы и действия подключены 
и все представления загружены. Этот метод вызывается только один раз в те
-
чение жизни представления, и это нормально, потому что он нужен лишь один 
раз.
Внутри 
viewDidLoad
мы записываем в свойство 
dataSource
табличного пред
-
ставления ссылку на источник данных, созданный внутри контроллера. Если 
теперь собрать и запустить приложение, вы увидите, что каталог загружается, 
как и раньше.
У кого-то из вас может возникнуть вопрос: «Зачем все эти сложности с соз
-
данием полноценного слоя данных? Разве не проще, когда контроллеры пере
-
дают данные предоставлениям напрямую?»
Скажем честно: проще.
Но давайте не будем забывать, что в нашем приложении все еще использу
-
ются статические данные. Подумайте, что случится, когда мы перейдем к ис
-
пользованию динамических данных и вы поймете, какие возможности откры
-
вает отделение данных от слоя представления!



Download 3,69 Mb.

Do'stlaringiz bilan baham:
1   ...   186   187   188   189   190   191   192   193   ...   228




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©hozir.org 2024
ma'muriyatiga murojaat qiling

kiriting | ro'yxatdan o'tish
    Bosh sahifa
юртда тантана
Боғда битган
Бугун юртда
Эшитганлар жилманглар
Эшитмадим деманглар
битган бодомлар
Yangiariq tumani
qitish marakazi
Raqamli texnologiyalar
ilishida muhokamadan
tasdiqqa tavsiya
tavsiya etilgan
iqtisodiyot kafedrasi
steiermarkischen landesregierung
asarlaringizni yuboring
o'zingizning asarlaringizni
Iltimos faqat
faqat o'zingizning
steierm rkischen
landesregierung fachabteilung
rkischen landesregierung
hamshira loyihasi
loyihasi mavsum
faolyatining oqibatlari
asosiy adabiyotlar
fakulteti ahborot
ahborot havfsizligi
havfsizligi kafedrasi
fanidan bo’yicha
fakulteti iqtisodiyot
boshqaruv fakulteti
chiqarishda boshqaruv
ishlab chiqarishda
iqtisodiyot fakultet
multiservis tarmoqlari
fanidan asosiy
Uzbek fanidan
mavzulari potok
asosidagi multiservis
'aliyyil a'ziym
billahil 'aliyyil
illaa billahil
quvvata illaa
falah' deganida
Kompyuter savodxonligi
bo’yicha mustaqil
'alal falah'
Hayya 'alal
'alas soloh
Hayya 'alas
mavsum boyicha


yuklab olish