@@ -56,11 +56,37 @@ open class RxViewController<ViewModel: RxViewModel>: UIViewController, RxViewCon
56
56
open override func viewDidLoad( ) {
57
57
super. viewDidLoad ( )
58
58
59
+ viewModel. viewDidLoadSubject. onNext ( ( ) )
60
+
59
61
subviews ( ) . forEach { view. addSubview ( $0) }
60
62
createConstraints ( )
61
63
bind ( ) . forEach { $0. disposed ( by: disposeBag) }
62
64
}
63
65
66
+ open override func viewWillAppear( _ animated: Bool ) {
67
+ super. viewWillAppear ( animated)
68
+
69
+ viewModel. viewWillAppearSubject. onNext ( ( ) )
70
+ }
71
+
72
+ open override func viewDidAppear( _ animated: Bool ) {
73
+ super. viewDidAppear ( animated)
74
+
75
+ viewModel. viewDidAppearSubject. onNext ( ( ) )
76
+ }
77
+
78
+ open override func viewWillDisappear( _ animated: Bool ) {
79
+ super. viewWillDisappear ( animated)
80
+
81
+ viewModel. viewWillDisappearSubject. onNext ( ( ) )
82
+ }
83
+
84
+ open override func viewDidDisappear( _ animated: Bool ) {
85
+ super. viewDidDisappear ( animated)
86
+
87
+ viewModel. viewDidDisappearSubject. onNext ( ( ) )
88
+ }
89
+
64
90
open func subviews( ) -> [ UIView ] {
65
91
Log . debug ( " [WARNING] \( type ( of: self ) ) .subview() has not been overrided " )
66
92
return [ ]
@@ -74,10 +100,9 @@ open class RxViewController<ViewModel: RxViewModel>: UIViewController, RxViewCon
74
100
Log . debug ( " [WARNING] \( type ( of: self ) ) .bind() has not been overrided. " )
75
101
return [ ]
76
102
}
77
-
103
+
78
104
/**
79
105
Add a child view controller to the root view of the parent view controller.
80
-
81
106
@param childController: a child view controller.
82
107
*/
83
108
override open func addChild( _ childController: UIViewController ) {
@@ -89,11 +114,11 @@ open class RxViewController<ViewModel: RxViewModel>: UIViewController, RxViewCon
89
114
guard let childController = childController as? RxViewControllerProtocol else { return }
90
115
viewModel. addChild ( childController. rxViewModel)
91
116
}
92
-
117
+
93
118
/**
94
119
Add a child view controller to the a container view of the parent view controller.
95
120
The edges of the child view controller is same as the container view by default.
96
-
121
+
97
122
@param childController: a child view controller.
98
123
@param containerView: a container view of childController.
99
124
*/
@@ -102,7 +127,7 @@ open class RxViewController<ViewModel: RxViewModel>: UIViewController, RxViewCon
102
127
// Add child view controller to a container view of the parent view controller.
103
128
containerView. addSubview ( childController. view)
104
129
childController. didMove ( toParent: self )
105
-
130
+
106
131
// Create constraints for the root view of the child view controller.
107
132
childController. view. translatesAutoresizingMaskIntoConstraints = false
108
133
childController. view. leftAnchor. constraint ( equalTo: containerView. leftAnchor) . isActive = true
0 commit comments