Жизненный цикл ViewController | SWIFT

  Рет қаралды 2,993

Swift Magic

Swift Magic

Күн бұрын

00:00 Вступление
00:00 Методы жизненного цикла vc
00:55 init
01:19 loadView
01:33 viewDidLoad
02:05 viewWillAppear
02:28 viewWillLayoutSubviews
02:43 viewDidLayoutSubviews
03:03 viewDidAppear
03:24 viewWillDisappear
04:04 viewDidDisappear
04:55 deinit
05:09 Промежуточные итоги
07:41 Демо
13:00 Выводы

Пікірлер: 34
@card1nal312
@card1nal312 Жыл бұрын
Именно то, что искал! Спасибо тебе большое за твой труд! Очень подробное и детальное объяснение темы! Ценю! ✊🏻😊
@valentinalinchuk
@valentinalinchuk Жыл бұрын
Эти видео - лучшие!
@user-iOSnick-dev
@user-iOSnick-dev 9 ай бұрын
Большое спасибо за труд!!!
@boekhounding2586
@boekhounding2586 7 ай бұрын
Автор, большая умница! Спасибо!
@gabibli
@gabibli 4 ай бұрын
Божественно
@MarkizBoneco
@MarkizBoneco 7 ай бұрын
отличное объяснение. спасибо большое!
@user-uh1uw5kj3x
@user-uh1uw5kj3x 11 ай бұрын
Спасибо большое, очень помогло данное видео
@user-nt6cg5un5e
@user-nt6cg5un5e Жыл бұрын
Лучшее пояснение на данную тему 🆒
@MetaFishing
@MetaFishing 4 ай бұрын
Супер! Спасибо
@user-ww1ur8ww8r
@user-ww1ur8ww8r 3 ай бұрын
Спасибо большое!!!
@Platss
@Platss 10 ай бұрын
Жаль 2 лайка нельзя поставить) Лучший на ютубе
@YA_BEDA
@YA_BEDA 8 ай бұрын
Спасибо большое за прекрасное видео! Если в планах выпускать еще?)
@fedy_2358
@fedy_2358 Жыл бұрын
deinit вызывается перед деаллокацией а не после 5:00
@windyaroa6524
@windyaroa6524 Жыл бұрын
Ты умеешь удивить
@artyom5602
@artyom5602 6 ай бұрын
Жаль не успели рассказать про новый метод isappearing
@denok137
@denok137 Жыл бұрын
хороший видос) только viewDidLoad может вызваться не один раз и да верстают же еще и на фреймах, и делают это позже него
@MagicSwift
@MagicSwift Жыл бұрын
Ты прав, спасибо за уточнение. Действительно, хотя обычно viewDidLoad() вызывается только один раз в жизненном цикле контроллера, существуют редкие случаи, когда это может произойти снова. Например, при получении системного предупреждения об недостатке памяти система может сделать это или при использовании вьюконтроллера снова, когда вью выгружается и повторно загружается. В этих и других исключительных ситуациях может возникнуть необходимость в повторном выполнении инициализации и настройки вью. В целом, это редкое поведение, но оно имеет место быть.
@hashcat5721
@hashcat5721 Жыл бұрын
если что то принтануть можно так print(\(#function) - \(Self.self))
@alexsandershishkin8664
@alexsandershishkin8664 Жыл бұрын
кайф! будет еще?
@MagicSwift
@MagicSwift Жыл бұрын
будет)
@dobrysiabar8791
@dobrysiabar8791 9 ай бұрын
5:55 "в методе loadView корневая view равна nil и мы можем подменить её на нашу кастомную". А в каком моменте дефолтный view становится не nil, если ничего не подменять и ничего не трогать? В методе viewDidLoad? Ну если так, то какой смысл подменять на кастомную view, если она почти сразу же перезапишется на дефолтную view от apple, так как это заложено жизненным циклом? Зачем тогда что-то подменять? Ну либо подменять view нужно в методе viewDidLoad, а не loadView, как говорит автор? Тема не раскрыта целиком и собеседующий просто завалит наводящими вопросами. На собеседовании такие поверхностные ответы не прокатят
@dobrysiabar8791
@dobrysiabar8791 9 ай бұрын
Разобрался самостоятельно. Если в методе loadView не вызвать super, то view не настроится и будет nil, а view controller будет метаться и вызывать метод loadView несколько раз. А если еще попытаться обратиться ко view, то программа начинает сходить с ума и вызывать метод loadView бесконечно. Поведение view controller'а очень странное если у view нет значения. Если не трогать свойство view, то view controller как-то умудряется жить и вызывать другие методы своего жизненного цикла. Но если хоть где-то дёрнуть свойство view, то это конец работе программы.
@dobrysiabar8791
@dobrysiabar8791 9 ай бұрын
0:30 на картинке вообще 4 метода, а не 6
@anemesis9635
@anemesis9635 Жыл бұрын
а почему layoutSubviews не входит в цикл?
@anemesis9635
@anemesis9635 Жыл бұрын
и по-моему, не совсем правильно обобщать и говорить, что viewDidLoad используется для верстки UI. для проставления констрейнтов - да, но ведь ручной подсчет фреймов нужно делать где-то в районе layoutSubviews. поправьте, если я не прав.
@MagicSwift
@MagicSwift Жыл бұрын
@@anemesis9635 layoutSubviews является часть жизненного цикла view, но не viewController’a. В контексте vc этот метод вызывается для вью, которые управляются контроллером, а не для него самого. Поэтому хоть этот метод и важен для расположения вью, он не имеет прямого отношения в жизненному циклу вью контроллера
@anemesis9635
@anemesis9635 Жыл бұрын
@@MagicSwift спасибо большое!
@dobrysiabar8791
@dobrysiabar8791 9 ай бұрын
@@anemesis9635 согласен полностью по поводу замечания касательно "верстки UI". Сам автор потом говорит про другие методы, что размеры для subviews еще не просчитаны. О какой вёрстке UI тогда может идти речь?
@user-gb2fs3tw6e
@user-gb2fs3tw6e Жыл бұрын
viewIsAppearing - новый метод. Между viewWillAppear и viewDidAppear
@dobrysiabar8791
@dobrysiabar8791 9 ай бұрын
Ты смог разобраться для чего он нужен, если у нас есть viewDidLayoutSubviews? Я вот пока что не понимаю
Жизненный цикл iOS приложения | SWIFT
18:02
Frame & Bounds | SWIFT
11:42
Swift Magic
Рет қаралды 3,1 М.
Gym belt !! 😂😂  @kauermotta
00:10
Tibo InShape
Рет қаралды 18 МЛН
Они так быстро убрались!
01:00
Аришнев
Рет қаралды 2,3 МЛН
路飞太过分了,自己游泳。#海贼王#路飞
00:28
路飞与唐舞桐
Рет қаралды 39 МЛН
View и Layer в чем разница | SWIFT
8:25
Swift Magic
Рет қаралды 3,1 М.
Многопоточность в iOS, вопросы и ответы на собеседованиях с примерами кода в Swift.
17:30
iOS разработка и подготовка к собеседованию
Рет қаралды 1,8 М.
Swift: completion escaping - замыкания
14:13
AvenCode iOS developer
Рет қаралды 3 М.
UIViewControllers in iOS and Swift
28:50
Sam Meech-Ward
Рет қаралды 6 М.
Samsung laughing on iPhone #techbyakram
0:12
Tech by Akram
Рет қаралды 7 МЛН
Мой новый мега монитор!🤯
1:00
Корнеич
Рет қаралды 1,7 МЛН
$1 vs $100,000 Slow Motion Camera!
0:44
Hafu Go
Рет қаралды 29 МЛН