UIViewController 和 UIView 生命周期 iOS
UIViewController and UIView Life cycles in iOS
我很想知道 View Controller 和 View 的生命周期。在网上查了很多,还是对以下几个概念有误解:
UIViewController 通过以下回调控制 UIView 或其根视图:
- ViewDidLoad(_:)
- ViewWillAppear(_:)
- ViewDidAppear(_:)
- ViewWillDisappear(_:)
- ViewDidDisappear(_:)
UIView 通过以下回调控制子视图:
- didAddSubview(_:)
- willRemoveSubview(_:)
- willMove( toSuperView :)
- didMoveToSuperView(_:)
Controller中有控制UIView生命周期的函数,但是有没有控制UIViewController生命周期的函数
在this文章中,Any提到两者有不同的生命周期,并且仅针对视图的生命周期进行了解释。任何帮助将不胜感激...
其实UIViewController
和UIView
的生命周期没有直接关系,可以独立对待。
对于UIViewController
,其生命周期受其使用方式的影响:
如果在容器viewController中用作childViewController
(UINavigationController
/UITabBarController
/UISplitViewController
等),或者作为 window.rootViewController
,它的生命周期将是:
init
viewDidLoad
willMoveToParentViewController:
viewWillAppear:
didMoveToParentViewController:
viewDidAppear:
willMoveToParentViewController:
viewWillDisappear:
didMoveToParentViewController:
viewDidDisappear:
dealloc
如果只是使用viewController.view
将其添加到其他视图,其生命周期可能只有:
init
viewDidLoad
viewWillAppear:
viewDidAppear:
dealloc
我很想知道 View Controller 和 View 的生命周期。在网上查了很多,还是对以下几个概念有误解:
UIViewController 通过以下回调控制 UIView 或其根视图:
- ViewDidLoad(_:)
- ViewWillAppear(_:)
- ViewDidAppear(_:)
- ViewWillDisappear(_:)
- ViewDidDisappear(_:)
UIView 通过以下回调控制子视图:
- didAddSubview(_:)
- willRemoveSubview(_:)
- willMove( toSuperView :)
- didMoveToSuperView(_:)
Controller中有控制UIView生命周期的函数,但是有没有控制UIViewController生命周期的函数
在this文章中,Any提到两者有不同的生命周期,并且仅针对视图的生命周期进行了解释。任何帮助将不胜感激...
其实UIViewController
和UIView
的生命周期没有直接关系,可以独立对待。
对于UIViewController
,其生命周期受其使用方式的影响:
如果在容器viewController中用作
childViewController
(UINavigationController
/UITabBarController
/UISplitViewController
等),或者作为window.rootViewController
,它的生命周期将是:init viewDidLoad willMoveToParentViewController: viewWillAppear: didMoveToParentViewController: viewDidAppear: willMoveToParentViewController: viewWillDisappear: didMoveToParentViewController: viewDidDisappear: dealloc
如果只是使用
viewController.view
将其添加到其他视图,其生命周期可能只有:init viewDidLoad viewWillAppear: viewDidAppear: dealloc