Skip to content

Commit 798d92b

Browse files
committed
Follow the main Auther API suggestion
1 parent f3c6ff0 commit 798d92b

File tree

1 file changed

+20
-60
lines changed

1 file changed

+20
-60
lines changed

Sources/Bond/Shared/ViewControllerLifecycle.swift

+20-60
Original file line numberDiff line numberDiff line change
@@ -10,37 +10,27 @@ import Foundation
1010
import UIKit
1111
import ReactiveKit
1212

13+
public enum LifecycleEvent {
14+
case viewDidLoad
15+
case viewWillAppear
16+
case viewDidAppear
17+
case viewWillDisappear
18+
case viewDidDisappear
19+
case viewDidLayoutSubviews
20+
case viewWillLayoutSubviews
21+
}
22+
1323
/// Observe UIViewController life cycle events
1424
public final class ViewControllerLifecycle {
1525

1626
private let wrapperViewController: WrapperViewController
1727

18-
public var viewDidLoad: SafeSignal<Void> {
19-
return self.wrapperViewController.lifecycleEvent(.viewDidLoad)
20-
}
21-
22-
public var viewWillAppear: SafeSignal<Void> {
23-
return self.wrapperViewController.lifecycleEvent(.viewWillAppear)
28+
public var lifecycleEvents: Signal<LifecycleEvent, Never> {
29+
self.wrapperViewController.lifecycleEvents
2430
}
2531

26-
public var viewDidAppear: SafeSignal<Void> {
27-
return self.wrapperViewController.lifecycleEvent(.viewDidAppear)
28-
}
29-
30-
public var viewWillDisappear: SafeSignal<Void> {
31-
return self.wrapperViewController.lifecycleEvent(.viewWillDisappear)
32-
}
33-
34-
public var viewDidDisappear: SafeSignal<Void> {
35-
return self.wrapperViewController.lifecycleEvent(.viewDidDisappear)
36-
}
37-
38-
public var viewWillLayoutSubviews: SafeSignal<Void> {
39-
return self.wrapperViewController.lifecycleEvent(.viewWillLayoutSubviews)
40-
}
41-
42-
public var viewDidLayoutSubviews: SafeSignal<Void> {
43-
return self.wrapperViewController.lifecycleEvent(.viewDidLayoutSubviews)
32+
public func lifecycleEvent(_ event: LifecycleEvent) -> Signal<Void, Never> {
33+
self.wrapperViewController.lifecycleEvent(event)
4434
}
4535

4636
public init(viewController: UIViewController) {
@@ -53,7 +43,7 @@ public final class ViewControllerLifecycle {
5343
.keyPath(\.view, startWithCurrentValue: false)
5444
.prefix(maxLength: 1)
5545
.bind(to: viewController) { (viewController, _) in
56-
self.addAsChildViewController(viewController) // weak self ?
46+
self.addAsChildViewController(viewController)
5747
}
5848
}
5949
}
@@ -72,15 +62,6 @@ private extension ViewControllerLifecycle {
7262

7363
final class WrapperViewController: UIViewController {
7464

75-
public enum LifecycleEvent {
76-
case viewDidLoad
77-
case viewWillAppear
78-
case viewDidAppear
79-
case viewWillDisappear
80-
case viewDidDisappear
81-
case viewDidLayoutSubviews
82-
case viewWillLayoutSubviews
83-
}
8465

8566
deinit {
8667
_lifecycleEvent.send(completion: .finished)
@@ -163,32 +144,11 @@ extension UIViewController: ViewControllerLifecycleProvider {
163144
}
164145

165146
extension ReactiveExtensions where Base: ViewControllerLifecycleProvider {
166-
167-
var viewDidLoad: SafeSignal<Void> {
168-
return self.base.viewControllerLifecycle.viewDidLoad
169-
}
170-
171-
var viewWillAppear: SafeSignal<Void> {
172-
return self.base.viewControllerLifecycle.viewWillAppear
173-
}
174-
175-
var viewDidAppear: SafeSignal<Void> {
176-
return self.base.viewControllerLifecycle.viewDidAppear
177-
}
178-
179-
var viewWillDisappear: SafeSignal<Void> {
180-
return self.base.viewControllerLifecycle.viewWillDisappear
147+
public var lifecycleEvents: Signal<LifecycleEvent, Never> {
148+
self.base.viewControllerLifecycle.lifecycleEvents
181149
}
182-
183-
var viewDidDisappear: SafeSignal<Void> {
184-
return self.base.viewControllerLifecycle.viewDidDisappear
185-
}
186-
187-
var viewWillLayoutSubviews: SafeSignal<Void> {
188-
return self.base.viewControllerLifecycle.viewWillLayoutSubviews
189-
}
190-
191-
var viewDidLayoutSubviews: SafeSignal<Void> {
192-
return self.base.viewControllerLifecycle.viewDidLayoutSubviews
150+
151+
public func lifecycleEvent(_ event: LifecycleEvent) -> Signal<Void, Never> {
152+
self.base.viewControllerLifecycle.lifecycleEvent(event)
193153
}
194154
}

0 commit comments

Comments
 (0)