Skip to content

Commit d160ac7

Browse files
authored
Merge pull request #7 from RxSwiftCommunity/develop/lifecycle
Update for lifecycle
2 parents 02bc729 + 9f9ef9f commit d160ac7

File tree

6 files changed

+53
-41
lines changed

6 files changed

+53
-41
lines changed

Example/Podfile.lock

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ PODS:
1212
- RxCocoa (5.1.1):
1313
- RxRelay (~> 5)
1414
- RxSwift (~> 5)
15-
- RxController (1.1):
15+
- RxController (1.1.1):
1616
- RxCocoa (~> 5)
1717
- RxFlow (~> 2.7)
1818
- RxSwift (~> 5)
@@ -64,7 +64,7 @@ SPEC CHECKSUMS:
6464
Reusable: 53a9acf5c536f229b31b5865782414b508252ddb
6565
RxBinding: da433c012633802a72c2a5bec8775b86f4cddeb8
6666
RxCocoa: 32065309a38d29b5b0db858819b5bf9ef038b601
67-
RxController: f4b42f77e2298a81720de4fc4580e10b38ea0b69
67+
RxController: 72db6a1e0d1b9e6c3f85b0379a8b9e8b3273ae6e
6868
RxDataSources: efee07fa4de48477eca0a4611e6d11e2da9c1114
6969
RxDataSourcesSingleSection: 4394e57ae097f33e3845cf3a57bdf7826eca2d38
7070
RxFlow: 029e260333ef843b349ba9cb9265929941830aee

Example/RxController/Controller/Child/InfoViewModel.swift

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,16 @@ class InfoViewModel: BaseViewModel {
2020

2121
private let faker = Faker(locale: "nb-NO")
2222

23+
override init() {
24+
super.init()
25+
26+
viewDidLoad.subscribe(onNext: { print("viewDidLoad") }).disposed(by: disposeBag)
27+
viewWillAppear.subscribe(onNext: { print("viewWillAppear") }).disposed(by: disposeBag)
28+
viewWillDisappear.subscribe(onNext: { print("viewWillDisappear") }).disposed(by: disposeBag)
29+
viewDidAppear.subscribe(onNext: { print("viewDidAppear") }).disposed(by: disposeBag)
30+
viewDidDisappear.subscribe(onNext: { print("viewDidDisappear") }).disposed(by: disposeBag)
31+
}
32+
2333
var name: Observable<String?> {
2434
events.value(of: InfoEvent.name)
2535
}

Example/RxController/Controller/Child/NameViewModel.swift

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -23,23 +23,24 @@ class NameViewModel: BaseViewModel {
2323

2424
private let nameRelay = BehaviorRelay<String?>(value: nil)
2525

26-
2726
override func prepareForParentEvents() {
2827
bindParentEvents(to: nameRelay, with: InfoEvent.name)
2928
}
3029

3130
var name: Observable<String?> {
3231
Observable.merge(
3332
nameRelay.asObservable(),
34-
Observable.combineLatest(
35-
events.unwrappedValue(of: NameEvent.firstName),
36-
events.unwrappedValue(of: NameEvent.lastName)
37-
).map { $0 + " " + $1 }
33+
Observable
34+
.combineLatest(
35+
events.unwrappedValue(of: NameEvent.firstName),
36+
events.unwrappedValue(of: NameEvent.lastName)
37+
)
38+
.map { $0 + " " + $1 }
3839
)
3940
}
4041

4142
var number: Observable<String?> {
42-
return parentEvents.value(of: InfoEvent.number)
43+
parentEvents.value(of: InfoEvent.number)
4344
}
4445

4546
func updateName() {

Example/RxController/Controller/Recursion/FirendsViewModel.swift

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -30,11 +30,13 @@ class FriendsViewModel: BaseViewModel {
3030
}
3131

3232
var friendSection: Observable<SingleSection<Selection>> {
33-
firindsRelay.map {
34-
$0.map { Selection(title: $0, accessory: .disclosureIndicator) }
35-
}.map {
36-
SingleSection.create($0)
37-
}
33+
firindsRelay
34+
.map {
35+
$0.map { Selection(title: $0, accessory: .disclosureIndicator) }
36+
}
37+
.map {
38+
SingleSection.create($0)
39+
}
3840
}
3941

4042
func pick(at index: Int) {

RxController.podspec

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88

99
Pod::Spec.new do |s|
1010
s.name = 'RxController'
11-
s.version = '1.1'
11+
s.version = '1.1.1'
1212
s.summary = 'A library for developing with MVVM-C based on RxFlow and RxSwift.'
1313

1414
# This description is used to generate tags and improve search results.

RxController/Classes/RxViewController.swift

Lines changed: 26 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -43,10 +43,35 @@ open class RxViewController<ViewModel: RxViewModel>: UIViewController, RxViewCon
4343
public init(viewModel: ViewModel) {
4444
self.viewModel = viewModel
4545
super.init(nibName: nil, bundle: nil)
46+
47+
rx.methodInvoked(#selector(viewDidLoad))
48+
.map { _ in }
49+
.bind(to: viewModel.viewDidLoadSubject)
50+
.disposed(by: disposeBag)
51+
52+
rx.methodInvoked(#selector(viewWillAppear(_:)))
53+
.map { _ in }
54+
.bind(to: viewModel.viewWillAppearSubject)
55+
.disposed(by: disposeBag)
56+
57+
rx.methodInvoked(#selector(viewDidAppear))
58+
.map { _ in }
59+
.bind(to: viewModel.viewDidAppearSubject)
60+
.disposed(by: disposeBag)
61+
62+
rx.methodInvoked(#selector(viewWillDisappear(_:)))
63+
.map { _ in }
64+
.bind(to: viewModel.viewWillDisappearSubject)
65+
.disposed(by: disposeBag)
66+
67+
rx.methodInvoked(#selector(viewDidDisappear(_:)))
68+
.map { _ in }
69+
.bind(to: viewModel.viewDidDisappearSubject)
70+
.disposed(by: disposeBag)
4671
}
4772

4873
required public init?(coder aDecoder: NSCoder) {
49-
fatalError("init(coder:) has not been implemented")
74+
fatalError("RxController does not support to initialized from storyboard or xib!")
5075
}
5176

5277
deinit {
@@ -56,37 +81,11 @@ open class RxViewController<ViewModel: RxViewModel>: UIViewController, RxViewCon
5681
open override func viewDidLoad() {
5782
super.viewDidLoad()
5883

59-
viewModel.viewDidLoadSubject.onNext(())
60-
6184
subviews().forEach { view.addSubview($0) }
6285
createConstraints()
6386
bind().forEach { $0.disposed(by: disposeBag) }
6487
}
6588

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-
9089
open func subviews() -> [UIView] {
9190
Log.debug("[WARNING] \(type(of: self)).subview() has not been overrided")
9291
return []

0 commit comments

Comments
 (0)