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



Download 3,69 Mb.
Pdf ko'rish
bet26/228
Sana21.07.2022
Hajmi3,69 Mb.
#834838
1   ...   22   23   24   25   26   27   28   29   ...   228
Bog'liq
Нативная разработка мобильных приложений

Расследование
Начнем наше детективное расследование с файла 
Info.plist
в проекте. Это спе
-
циальный файл, который определяется в настройках проекта XCode. Он содер
-
жит параметры конфигурации приложения в форме хорошо знакомых ключей 
XML. Вот как определяются значения свойств в этом файле:
UIMainStoryboardFile
Main
Элемент 
key
с именем свойства 
UIMainStoryboardFile
указывает, что опреде
-
ляется имя файла раскадровки (storyboard), который приложение должно ис
-


32

Контроллеры пользовательского интерфейса
пользовать при запуске. Значение этого свойства – 
Main
– напрямую отобража
-
ется в имя файла, в этом примере в файл с именем 
Main.storyboard
. Продолжим 
расследование в данном файле.
Если открыть 
Main.storyboard
в визуальном редакторе Xcode, мы увидим 
единственную сцену с большой стрелкой, указывающей на нее. Каждой сцене 
в раскадровке (storyboard) соответствует 
UIViewController
, заданный в инспек
-
торе идентичности (Identity inspector) в правой части экрана. По умолчанию 
это стандартный экземпляр 
UIViewController
, но в инспекторе можно выбрать 
пользовательский подкласс, введя имя подкласса в поле 
Class
. В нашем приме
-
ре проекта используется собственный класс, установленный в View-Controller, 
который является подклассом 
UIViewController
и определяется в файле 
View-
Controller.swift
(рис. 1.2).
Рис. 1.2 

Редактор раскадровки в Xcode
Теперь о большой стрелке слева от сцены контроллера представления: это 
просто «дымящийся ствол пистолета», на который мы наткнулись в ходе поис
-
ка корневого контроллера представления. В инспекторе атрибутов (Attributes 
inspector) в XCode есть флажок с подписью 
Is
Initial View Controller
(Является 
начальным контроллером представления), который в настоящий момент уста
-
новлен. Если снять этот флажок, большая стрелка исчезнет. Создайте и запус-
тите приложение, предварительно сняв флажок, и вы получите несколько 
предупреждений и следующую ошибку в консоли Xcode:
Failed to instantiate the default view controller
for UIMainStoryboardFile 'Main' ­ perhaps the designated entry point is not
set?
(Перевод:
Ошибка создания экземпляра контроллера представления по умолчанию


iOS 

33
для UIMainStoryboardFile 'Main' – возможно, требуемая точка входа не 
установлена?
)
Отлично! Мы узнали, откуда берется корневой контроллер представления. 
Но как объединить полученные знания, чтобы задать свой корневой контрол
-
лер представления в окне приложения?
Это просто. При запуске приложение ищет ключ 
UIMainStoryboardFile
в сво
-
ем файле 
Info.plist
. Внутри главного файла раскадровки находит контроллер 
представления для сцены с установленным флажком 
Is
Initial View Controller
(Является начальным контроллером представления) и создает его. Поскольку 
этот начальный контроллер представления определен в главной раскадровке, 
приложение добавит его в свойство 
rootViewController
окна приложения, и дело 
в шляпе! Теперь в приложении есть корневой контроллер, который отобража
-
ется и активен.
При желании того же результата можно добиться, добавив следующий код 
внутрь делегата приложения:
func application(_ application: UIApplication,
didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) ­>
Bool {
window = UIWindow(frame: UIScreen.main.bounds)
window?.rootViewController = UIStoryboard(name: "Main", bundle: nil).
instantiateInitialViewController()
window?.makeKeyAndVisible()
return true
}
Рассмотрим его подробнее.
Сначала инициализируется переменная 
window
, которая определена как часть 
протокола 
UIApplicationDelegate
, и ей присваивается ссылка на экземпляр окна 
UIWindow
, имеющего те же размеры, что и размеры главного и, вероятно един
-
ственного, экрана устройства (
UIScreen.main.bounds
). Затем назначается корне
-
вой контроллер. Это может быть любой имеющийся контроллер, но в данном 
примере мы используем начальный контроллер, как определено в файле 
Main.
storyboard
; для этого вызывается метод 
instantiateInitialViewController()
объ
-
екта 
UIStoryboard
.
Наконец, мы отображаем данное окно, вызывая 
makeKeyAndVisible()
. Этот ме
-
тод принимает объект окна и назначает его основным окном приложения, вы
-
тесняя все другие окна, отображаемые в данный момент.
Вообще говоря, в каждый конкретный момент приложения для iOS отображают 
только одно окно, но это 
не всегда
так. Приложениям, которые должны выводить 
видео на другой экран, может потребоваться больше одного окна; хорошим при
-
мером могут служить приложения, подобные Keynote. Однако это, скорее, исклю
-
чение из правил.

Download 3,69 Mb.

Do'stlaringiz bilan baham:
1   ...   22   23   24   25   26   27   28   29   ...   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