iOS中的UIViewController和UIView生命周期

时间:2018-09-25 07:15:33

标签: ios uiview uiviewcontroller uikit lifecycle

我担心知道View Controller和View的生命周期。在网上搜索了很多之后,我仍然对以下概念误解了:

  • UIViewController通过以下回调控制UIView或其根视图:

    1. ViewDidLoad(_:)
    2. ViewWillAppear(_:)
    3. ViewDidAppear(_:)
    4. ViewWillDisappear(_:)
    5. ViewDidDisappear(_:)
  • UIView通过以下回调控制子视图:

    1. didAddSubview(_:)
    2. willRemoveSubview(_:)
    3. willMove(toSuperView:)
    4. didMoveToSuperView(_:)

Controller中有一些功能可以控制UIView的生命周期,但是有任何功能可以控制UIViewController的生命周期。

this文章中,Any提到两者都有不同的生命周期,并且仅针对视图的生命周期进行了解释。任何帮助将不胜感激...

1 个答案:

答案 0 :(得分:0)

实际上,UIViewControllerUIView的生命周期并不直接相关,可以独立对待。

对于UIViewController,其生命周期受其使用方式的影响:

  1. 如果在容器viewController中用作childViewControllerUINavigationController / UITabBarController / UISplitViewController等)或window.rootViewController,其生命周期将为:

    init
    viewDidLoad
    willMoveToParentViewController:
    viewWillAppear:
    didMoveToParentViewController:
    viewDidAppear:
    willMoveToParentViewController:
    viewWillDisappear:
    didMoveToParentViewController:
    viewDidDisappear:
    dealloc
    
  2. 如果仅使用viewController.view将其添加到其他视图中,则其生命周期可能仅是:

    init
    viewDidLoad
    viewWillAppear:
    viewDidAppear:
    dealloc