Тёмный

Жизненный цикл UIViewController (Swift 4) 

SwiftBook
Подписаться 18 тыс.
Просмотров 21 тыс.
50% 1

Всем привет! В этом видео мы поговорим о жизненном цикле UIViewContrller. Данную тему часто поднимают на собеседованиях и не просто так. Это связано с тем, что она затрагивает методы, которые срабатывают на определенной стадии жизненного цикла вью контроллера. Мы с вами рассмотрим основные методы и выясним в какой момент вступает в действие тот или иной метод.
Поехали!
Подробнее об изучении Swift вы можете узнать на нашем сайте:
swiftbook.org/
Наш форум, где вы всегда можете задать ваши вопросы:
forum.swiftboo...
Присоединяйтесь к нашей группе в "ВКонтакте":
swiftbook
Присоединяйтесь к нашей группе в "facebook":
/ swiftbook.ru
Мы в твиттере:
/ swiftbook_twi
Мы в telegram:
t.me/swiftbook...

Опубликовано:

 

2 окт 2024

Поделиться:

Ссылка:

Скачать:

Готовим ссылку...

Добавить в:

Мой плейлист
Посмотреть позже
Комментарии : 48   
@NoNameWhyItsNeededHere
@NoNameWhyItsNeededHere 6 лет назад
Алексей забыл упомянуть, что при переопределении метода суперкласса, т.е. если перед методом стоит слово override, ОБЯЗАТЕЛЬНО нужно вызвать метод суперкласса(super.названиеМетода()). Например: override viewDidLoad() { super.viewDidLoad() // Ваш код } override viewWillAppear(_ animated: Bool) { super.viewWillAppear(animated) // Ваш код }
@lexefimov
@lexefimov 6 лет назад
Да спасибо, за поправку. Во второй части данной темы, я отдельно акцентирую на этом внимание
@romaivanov22
@romaivanov22 5 лет назад
Спасибо, за видео! Почему методы viewWillLayoutSubviews и viewDidLayoutSubviews в видео срабатывают два раза подряд?
@Architect_Mobile
@Architect_Mobile 6 лет назад
Хороший урок )) И обьяснение четкое )
@ЕвгенийСычёв-п8у
спасибо, все было очень полезно. Предложение одно, например в самом конце видео вывести блоксхему, что за чем идет)
@АнатолийЯ-ы7т
@АнатолийЯ-ы7т 6 лет назад
didReceiveMemoryWarning можно увидеть вызваз меню в меню симулятора
@Dima-eo7do
@Dima-eo7do 3 года назад
deinit не выгружает объект из памяти, а срабатывает перед уничтожением объектов. Уничтожением объектов занимается ARC
@sergeyosa5374
@sergeyosa5374 6 лет назад
Спасибо, информативно. Есть одно пожелание, сделать размер шрифта крупнее, тяжело читать.
@SwiftBook
@SwiftBook 6 лет назад
Спасибо! Учли, в следующем видео будет все крупнее!
@tochkaarendiru
@tochkaarendiru 6 лет назад
Лол!!! Как раз хотел такой вопрос задать по цикл жизни UIViewController и тут вижу видос....
@andreyp7224
@andreyp7224 6 лет назад
Почему повторно срабатывают эти методы? У меня они срабатывают один раз. viewWillLayoutSubviews viewDidLayoutSubviews viewWillLayoutSubviews viewDidLayoutSubviews
@yuraoff1383
@yuraoff1383 6 лет назад
по поводу методов viewWillDisappear и viewDidDisappear, они срабатывают не на закрытие вью, а на пропадание его с экрана. Ну и можно было уточнить, что deinit не относится к ЖЦ контроллера, а в принципе срабатывает при уничтожении любого объекта. Можно было еще вывести инфу о ЖЦ первого вью контроллера, что с ним происходит когда отображается второй контроллер
@SwiftBook
@SwiftBook 6 лет назад
Спасибо за уточнение, Юрий!
@АлексейВоронов-ц3я
да, было бы очень полезно понимать, в каком состоянии находится первый контроллер при открытии второго. небольшая подсказка на реплику о том, что Алексей не может симулировать нехватку памяти: в меню симулятора такое предусмотрено и вызывается по пути: Simulator -> Hardware -> Simulate Memory Warning
@Ryan9Grey
@Ryan9Grey 6 лет назад
в "модел хранится вся бизнес-логика", ээмм..точно?
@albertchubakov7120
@albertchubakov7120 6 лет назад
но это не точно)
@TyTy-oh2wq
@TyTy-oh2wq 3 года назад
возможно, автор имеет в виду слой Domain, в котором лежит и Entity и Interactor/UseCases
@AleksandrA-o1v
@AleksandrA-o1v 2 года назад
а где loadView ???
@vovamik
@vovamik 6 лет назад
Привет ребята! У меня несколько пожеланий. Алексей, извините меня, за придирки к произношению. Опять же на собеседование, как iOS разработчика, меня ещё не приглашали, но... наверное важнее понимать какие именно процессы в эти методы надо помещать (отображение, что именно будет правильнее до появления view и т.д.). В своих уроках Иван делал акцент на этих моментах. Это важно. Может быть данное видео получит продолжение?
@SwiftBook
@SwiftBook 6 лет назад
Спасибо! Да, продолжение планируем.
@lexefimov
@lexefimov 6 лет назад
Спасибо, Владимир. Что касается произношения, то я говорю на американский лад, а они произносят это слово именно так.
@ОлегНерж
@ОлегНерж 6 лет назад
знаете, Владимир, качки тыкают всех жиром и здоровым питанием, филологи тыкают безграмотностью и правописанием, а вы своим произношением английских слов так вот это все от каких-то комплексов. Потому как я не нахожу логического объяснения, нафига писать ваш комментарий на канале по разработке ? А цвета вьюконтроллеров нормальные подобрали ? Может вы еще и дизайнер и они вас тоже отвлекают ? Простите, но ваш комментарий это какой-то выпендреж. А пишу я вам и трачу время, потому что: ну накипело, часто такое наблюдаю, но в комментах к видео по разработке для iOS, ваш идиотизм был последней каплей... Не отвлекайтесь на эти видео-уроки, не стоит, у вас видимо шикарный английский, учите все на оф. сайте Apple для разработчиков
@vovamik
@vovamik 6 лет назад
Олег, извините что довёл Вас до кипения. Что касается роликов про разработку, то за 4 месяца я просмотрел и повторил в коде 80% роликов и уроков Ивана. И за следующие 3 месяца посмотрел ещё примерно столько же, надеюсь что с пользой. Пишу свое первое приложение, и дизайн к нему тоже сам делал, после уроков Ивана. Так вот Иван задал высокую планку уроков. И на сколько я понимаю позицию ребят из SWIFTBOOK, они хотят сделать так, чтобы Алексей полностью вписался в уже зарекомендовавший себя проект. Именно по-этому любая здоровая критика, должна пойти на пользу. Поверьте, я уже сотню раз пожалел, о своем высказывании. Но, я с глубочайшим уважением отношусь к Ивану и Алексею, и их нелёгкому и очень нужному труду. Надеюсь, у них всё получится. На схожем, по тематике, канале есть лектор Евгений Зверик, сразу видно, человек в школе немецкий учил. Но он так материал подаёт, как никто... В общем ещё раз извините все, кого я обидел. Хотел , как всегда - как лучше. Всем удачи в разработке и обучении разработчиков!
@ОлегНерж
@ОлегНерж 6 лет назад
Да, я тоже перегнул со словами типа "идиотизм" и не мне тыкать, как вам и что учить... Я был в плохом настроении и действительно комментарий подобный вашему не хватило сил пропустить. Поэтому хочу признать, что мне следовало писать более тактично и уважительно. Я понял, что вы сознательный человек. И да, хоть это интернет и каждый комментарий имеет право быть прокомментированным, это все таки не мой канал и не мой разговор, просто так сложились звезды сатурн в созвездии скорпиона и видимо немного зависти, т.к. мой английский, можно сказать, отсутствует. Удачи вам с изучением.
@torburgmax
@torburgmax 4 года назад
Неплохая статья medium.com/good-morning-swift/ios-view-controller-life-cycle-2a0f02e74ff5
@nikk6578
@nikk6578 5 лет назад
хорошая диаграмма, начало с 9ти часов rdkw.wordpress.com/2013/02/24/ios-uiviewcontroller-lifecycle/
@nativeassasin7173
@nativeassasin7173 3 года назад
а метод viewDidUnload есть? вроде в документации он присутствует но помечен как "не рекомендуется"
@sovrinfo
@sovrinfo 2 года назад
Спасибо за видео.Коммент в поддержку!
@ziman_12
@ziman_12 3 года назад
Спасибо, ваши курсы одни из немногих, которые отлично подают материал!!!!
@artyombaranov2856
@artyombaranov2856 3 года назад
ссылку можно на проект?
@chingizzholdaspayev688
@chingizzholdaspayev688 2 года назад
Спасибо!
@sergeybizunov6387
@sergeybizunov6387 6 лет назад
Пригодится это не только для собеседования при поступлении на работу, в больших организациях есть много внутренних собеседований и эту тему нужно понимать чётко. Не услышал ни слова про `init()`, по поводу `deinit()` - яблочники не советуют вызывать его без крайней необходимости и как заметили ребята, при переопределении стандартных методов ничего не было сказано про вызов того же метода у `super` (это внесёт смуту в умы начинающих), но в целом не плохо. Плюсик.
@eltrading7356
@eltrading7356 6 лет назад
Super!
@ГеоргийСтарков-т8м
Здравствуйте, большое спасибо за видеоурок! Будьте добры, подскажите пожалуйста, более подробно про deinit() - важно ли применять его на постоянной основе? Или если его не объявить, то за нас позаботится ARC?
@SwiftBook
@SwiftBook 3 года назад
нет отдельно его, как правило, писать не обязательно. Если объект не используется, то он должен самостоятельно отпустить. Если вам что-то нужно конкретное сделать при освобождении объекта, то вы можете в deinit() прописать то, что нужно.
@ГеоргийСтарков-т8м
@@SwiftBook огромное спасибо!))
@IhorFedii-n1i
@IhorFedii-n1i 5 лет назад
Спасибо!
@zslavman
@zslavman 5 лет назад
почитал комменты, и к некоторым особенно лютым комментаторам хочу донести одну мысль - вы чем то недовольны? так проходите мимо, денег с вас просмотр никто не берет, здесь полно бесплатных каналов обучающих Swift, вот только беда - все они англоязычные, правда? У Ивана один из лучших RU каналов посвященных данной теме, без преувеличения
@nativeassasin7173
@nativeassasin7173 3 года назад
ок буду жрать что дают я ж терпила
Далее
У КОТЯТ ОТКРЫЛИСЬ ГЛАЗКИ#cat
00:26
Провал со стеклянным хлебом…
00:41
KVO Key-Value Observing и KVC Key-Value Coding
16:28
UIViewController - Lifecycle | Swift | viewDidLoad
7:57
Dependency Injection
15:31
Просмотров 15 тыс.
Жизненный цикл ViewController | SWIFT
13:52
Caching images
11:41
Просмотров 7 тыс.
У КОТЯТ ОТКРЫЛИСЬ ГЛАЗКИ#cat
00:26