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

แชร์
ฝัง
  • เผยแพร่เมื่อ 28 ม.ค. 2025

ความคิดเห็น • 34

  • @gabibli
    @gabibli 10 หลายเดือนก่อน

    Божественно

  • @boekhounding2586
    @boekhounding2586 ปีที่แล้ว

    Автор, большая умница! Спасибо!

  • @card1nal312
    @card1nal312 ปีที่แล้ว +1

    Именно то, что искал! Спасибо тебе большое за твой труд! Очень подробное и детальное объяснение темы! Ценю! ✊🏻😊

  • @fedy_2358
    @fedy_2358 ปีที่แล้ว +2

    deinit вызывается перед деаллокацией а не после 5:00

  • @valentinalinchuk
    @valentinalinchuk ปีที่แล้ว

    Эти видео - лучшие!

  • @user-iOSnick-dev
    @user-iOSnick-dev ปีที่แล้ว

    Большое спасибо за труд!!!

  • @MarkizBoneco
    @MarkizBoneco ปีที่แล้ว

    отличное объяснение. спасибо большое!

  • @YA_BEDA
    @YA_BEDA ปีที่แล้ว

    Спасибо большое за прекрасное видео! Если в планах выпускать еще?)

  • @Platss
    @Platss ปีที่แล้ว

    Жаль 2 лайка нельзя поставить)
    Лучший на ютубе

  • @ИльяЗорин-о4щ
    @ИльяЗорин-о4щ ปีที่แล้ว

    Лучшее пояснение на данную тему 🆒

  • @СлаваВовк-м4о
    @СлаваВовк-м4о ปีที่แล้ว

    Спасибо большое, очень помогло данное видео

  • @твойсладкийкотик
    @твойсладкийкотик 8 หลายเดือนก่อน

    Спасибо большое!!!

  • @MetaFishing
    @MetaFishing 10 หลายเดือนก่อน

    Супер! Спасибо

  • @artyom5602
    @artyom5602 ปีที่แล้ว

    Жаль не успели рассказать про новый метод isappearing

  • @alexsandershishkin8664
    @alexsandershishkin8664 ปีที่แล้ว

    кайф! будет еще?

  • @denok137
    @denok137 ปีที่แล้ว +1

    хороший видос)
    только viewDidLoad может вызваться не один раз
    и да верстают же еще и на фреймах, и делают это позже него

    • @MagicSwift
      @MagicSwift  ปีที่แล้ว +2

      Ты прав, спасибо за уточнение. Действительно, хотя обычно viewDidLoad() вызывается только один раз в жизненном цикле контроллера, существуют редкие случаи, когда это может произойти снова. Например, при получении системного предупреждения об недостатке памяти система может сделать это или при использовании вьюконтроллера снова, когда вью выгружается и повторно загружается. В этих и других исключительных ситуациях может возникнуть необходимость в повторном выполнении инициализации и настройки вью. В целом, это редкое поведение, но оно имеет место быть.

  • @hashcat5721
    @hashcat5721 ปีที่แล้ว +1

    если что то принтануть можно так print(\(#function) - \(Self.self))

  • @anemesis9635
    @anemesis9635 ปีที่แล้ว

    а почему layoutSubviews не входит в цикл?

    • @anemesis9635
      @anemesis9635 ปีที่แล้ว

      и по-моему, не совсем правильно обобщать и говорить, что viewDidLoad используется для верстки UI. для проставления констрейнтов - да, но ведь ручной подсчет фреймов нужно делать где-то в районе layoutSubviews. поправьте, если я не прав.

    • @MagicSwift
      @MagicSwift  ปีที่แล้ว +5

      @@anemesis9635 layoutSubviews является часть жизненного цикла view, но не viewController’a.
      В контексте vc этот метод вызывается для вью, которые управляются контроллером, а не для него самого. Поэтому хоть этот метод и важен для расположения вью, он не имеет прямого отношения в жизненному циклу вью контроллера

    • @anemesis9635
      @anemesis9635 ปีที่แล้ว

      @@MagicSwift спасибо большое!

    • @gomayata-f2n
      @gomayata-f2n ปีที่แล้ว

      @@anemesis9635 согласен полностью по поводу замечания касательно "верстки UI". Сам автор потом говорит про другие методы, что размеры для subviews еще не просчитаны. О какой вёрстке UI тогда может идти речь?

  • @gomayata-f2n
    @gomayata-f2n ปีที่แล้ว

    0:30 на картинке вообще 4 метода, а не 6

  • @gomayata-f2n
    @gomayata-f2n ปีที่แล้ว +1

    5:55 "в методе loadView корневая view равна nil и мы можем подменить её на нашу кастомную". А в каком моменте дефолтный view становится не nil, если ничего не подменять и ничего не трогать? В методе viewDidLoad? Ну если так, то какой смысл подменять на кастомную view, если она почти сразу же перезапишется на дефолтную view от apple, так как это заложено жизненным циклом? Зачем тогда что-то подменять?
    Ну либо подменять view нужно в методе viewDidLoad, а не loadView, как говорит автор?
    Тема не раскрыта целиком и собеседующий просто завалит наводящими вопросами. На собеседовании такие поверхностные ответы не прокатят

    • @gomayata-f2n
      @gomayata-f2n ปีที่แล้ว +1

      Разобрался самостоятельно. Если в методе loadView не вызвать super, то view не настроится и будет nil, а view controller будет метаться и вызывать метод loadView несколько раз. А если еще попытаться обратиться ко view, то программа начинает сходить с ума и вызывать метод loadView бесконечно.
      Поведение view controller'а очень странное если у view нет значения. Если не трогать свойство view, то view controller как-то умудряется жить и вызывать другие методы своего жизненного цикла. Но если хоть где-то дёрнуть свойство view, то это конец работе программы.

  • @windyaroa6524
    @windyaroa6524 ปีที่แล้ว

    Ты умеешь удивить

  • @АртемНикитин-п7г
    @АртемНикитин-п7г ปีที่แล้ว +1

    viewIsAppearing - новый метод. Между viewWillAppear и viewDidAppear

    • @gomayata-f2n
      @gomayata-f2n ปีที่แล้ว

      Ты смог разобраться для чего он нужен, если у нас есть viewDidLayoutSubviews? Я вот пока что не понимаю