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



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

File 

 New 

 File
(Файл 

Создать 

Файл). Этот новый класс будет играть 
роль источника данных для нашего табличного представления. Пока этот файл 
содержит довольно простой код:
import UIKit
class ListDataSource: NSObject {
}
extension ListDataSource: UITableViewDataSource {
func tableView(_ tableView: UITableView, 
numberOfRowsInSection section: Int) ­> Int {
return Book.sampleData.count
}
func tableView(_ tableView: UITableView,
cellForRowAt indexPath: IndexPath) ­> UITableViewCell {
// Получить ячейку из пула свободных ячеек
let cell =
tableView.dequeueReusableCell(withIdentifier: "CatalogTableViewCell",
for: indexPath)
// Найти книгу, соответствующую заполняемой ячейке
let book = Book.sampleData[indexPath.row]
// Заполнить метку с заголовком ячейки названием книги
cell.textLabel?.text = book.title
return cell
}
}
Если часть этого кода показалась вам знакомой, то вы не ошиблись! Это тот 
же код, который использовался в 
CatalogViewController
для отображения спис-
ка книг в представлении каталога. Поместив этот код в отдельный файл, мы 
можем теперь удалить весь код поддержки протокола 
UITableViewDataSource
из 
CatalogViewController
. Определение класса 
CatalogViewController
теперь должно 
выглядеть так:
class CatalogViewController: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()


296

Моделирование каталога библиотеки
// Выполните здесь дополнительные настройки представления.
}
}
Если теперь попытаться собрать и запустить приложение, вы обнаружите, 
что из этого ничего хорошего не получится. Класс 
CatalogViewController
лишил
-
ся методов реализации протокола источника данных, необходимых таблично
-
му представлению, но связь между ним и представлением все еще определена 
в 
Main.Storyboard
. Из-за этого возникает ошибка 
S
IGABORT
и приложение завер
-
шается.
Печально. Давайте посмотрим, можно ли исправить эту проблему. Попутно, 
исправляя проблему, посмотрим также, можно ли заставить табличное пред
-
ставление в 
CatalogViewController
напрямую использовать наш новый класс 
ListDataSource
в качестве источника данных.
Прежде всего удалим связь в 
Main.storyboard
. Откройте раскадровку и выбе
-
рите табличное представление. В панели справа откройте инспектор соедине
-
ний. Внутри вы увидите соединение с 
dataSource
. Щелкните на кнопке с изобра-
жением крестика, чтобы удалить это соединение из раскадровки.
Теперь задействуем в табличном представлении новый объект источника 
данных. Для этого нужно добавить в контроллер связь с табличным представ
-
лением. Сделать это можно с помощью 

Download 3,69 Mb.

Do'stlaringiz bilan baham:
1   ...   185   186   187   188   189   190   191   192   ...   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