-1 ol-1"> 1 1
 //
2 2
 //  MessageListViewController.swift
3
-//  PaiAi
3
+//  Paiai_iOS
4 4
 //
5
-//  Created by mac on 16/5/13.
5
+//  Created by FFIB on 16/5/13.
6 6
 //  Copyright © 2016年 FFIB. All rights reserved.
7 7
 //
8 8
 
@@ -179,3 +179,9 @@ fileprivate extension MessageListViewController {
179 179
 }
180 180
 
181 181
 extension MessageListViewController: NavigationBackViewController {}
182
+
183
+extension MessageListViewController: Storyboarded {
184
+    static func instantiate() -> MessageListViewController {
185
+        return UIStoryboard.message.instantiateViewController(type: MessageListViewController.self)
186
+    }
187
+}

+ 2 - 2
PaiAi/Paiai_iOS/App/Message/MessageSystemCell.swift

@@ -1,8 +1,8 @@
1 1
 //
2 2
 //  MessageSystemCell.swift
3
-//  PaiAi
3
+//  Paiai_iOS
4 4
 //
5
-//  Created by mac on 16/5/13.
5
+//  Created by FFIB on 16/5/13.
6 6
 //  Copyright © 2016年 FFIB. All rights reserved.
7 7
 //
8 8
 

+ 10 - 3
PaiAi/Paiai_iOS/App/Message/MessageViewController.swift

@@ -1,16 +1,17 @@
1 1
 //
2 2
 //  MessageViewController.swift
3
-//  PaiAi
3
+//  Paiai_iOS
4 4
 //
5 5
 //  Created by FFIB on 2018/6/14.
6
-//  Copyright © 2018 yb. All rights reserved.
6
+//  Copyright © 2018 FFIB. All rights reserved.
7 7
 //
8 8
 
9 9
 import UIKit
10 10
 import RxSwift
11
+import PaiaiUIKit
11 12
 import PaiaiDataKit
12 13
 
13
-class MessageViewController: UIViewController {
14
+final class MessageViewController: UIViewController {
14 15
 
15 16
     @IBOutlet weak var sysUnreadTip: UIView!
16 17
     @IBOutlet weak var thumbupUnreadTip: UIView!
@@ -62,3 +63,9 @@ extension MessageViewController {
62 63
             }).disposed(by: disposeBag)
63 64
     }
64 65
 }
66
+
67
+extension MessageViewController: Storyboarded {
68
+    static func instantiate() -> MessageViewController {
69
+        return UIStoryboard.message.instantiateViewController(type: MessageViewController.self)
70
+    }
71
+}

+ 2 - 2
PaiAi/Paiai_iOS/App/Mine/GroupCell.swift

@@ -1,8 +1,8 @@
1 1
 //
2 2
 //  GroupCell.swift
3
-//  PaiAi
3
+//  Paiai_iOS
4 4
 //
5
-//  Created by zhengjianfei on 16/4/4.
5
+//  Created by FFIB on 16/4/4.
6 6
 //  Copyright © 2016年 FFIB. All rights reserved.
7 7
 //
8 8
 

+ 15 - 2
PaiAi/Paiai_iOS/App/Mine/MineAboutViewController.swift

@@ -1,8 +1,8 @@
1 1
 //
2 2
 //  MineAboutViewController.swift
3
-//  PaiAi
3
+//  Paiai_iOS
4 4
 //
5
-//  Created by zhengjianfei on 16/4/7.
5
+//  Created by FFIB on 16/4/7.
6 6
 //  Copyright © 2016年 FFIB. All rights reserved.
7 7
 //
8 8
 
@@ -21,6 +21,8 @@ final class MineAboutViewController: UIViewController {
21 21
     
22 22
     private var disposeBag = DisposeBag()
23 23
     
24
+    var didCancel = PublishSubject<Void>()
25
+    
24 26
     // MARK: view function
25 27
     override func viewDidLoad() {
26 28
         super.viewDidLoad()
@@ -31,6 +33,11 @@ final class MineAboutViewController: UIViewController {
31 33
         versionLabel.text = Bundle.main.infoDictionary?["CFBundleShortVersionString"] as? String
32 34
         bindGestures()
33 35
     }
36
+    
37
+    override func viewWillDisappear(_ animated: Bool) {
38
+        super.viewWillDisappear(animated)
39
+        didCancel.onNext(())
40
+    }
34 41
 }
35 42
 
36 43
 fileprivate extension MineAboutViewController {
@@ -73,3 +80,9 @@ fileprivate extension MineAboutViewController {
73 80
 }
74 81
 
75 82
 extension MineAboutViewController: NavigationBackViewController {}
83
+
84
+extension MineAboutViewController: Storyboarded {
85
+    static func instantiate() -> MineAboutViewController {
86
+        return UIStoryboard.mine.instantiateViewController(type: MineAboutViewController.self)
87
+    }
88
+}

+ 36 - 23
PaiAi/Paiai_iOS/App/Mine/MineCoordinator.swift

@@ -1,38 +1,36 @@
1 1
 //
2 2
 //  MineCoordinator.swift
3
-//  PaiAi
3
+//  Paiai_iOS
4 4
 //
5
-//  Created by ffib on 2018/12/6.
6
-//  Copyright © 2018 yb. All rights reserved.
5
+//  Created by FFIB on 2018/12/6.
6
+//  Copyright © 2018 FFIB. All rights reserved.
7 7
 //
8 8
 
9
-import Foundation
9
+import UIKit
10
+import RxSwift
10 11
 import PaiaiDataKit
11
-import PaiaiUIKit
12 12
 
13
-class MineCoordinator: Coordinator {
13
+class MineCoordinator: BaseCoordinator<Void> {
14 14
     
15 15
     let mineViewController: MineViewController
16
-    let navigationController: UINavigationController
17
-    var childCoordinator = [CoordinatorKey: Coordinator]()
18
-    let mainViewController: ContainerViewController
19
-//    let shareUserInfoViewModel
16
+    fileprivate let navigationController: UINavigationController
20 17
     
21
-    init(_ mineViewController: MineViewController, navigationController: UINavigationController, mainViewController: ContainerViewController) {
22
-        self.mineViewController = mineViewController
18
+    init(_ viewController: MineViewController,
19
+         navigationController: UINavigationController) {
20
+        self.mineViewController = viewController
23 21
         self.navigationController = navigationController
24
-        self.mainViewController = mainViewController
25
-        self.mineViewController.delegate = self
26 22
     }
27 23
     
28
-    func start() {
29
-        
24
+    override func start() -> Observable<Void> {
25
+        mineViewController.delegate = self
26
+        return didCancel
30 27
     }
31 28
 }
32 29
 
33 30
 extension MineCoordinator: MineViewControllerDelegate {
34 31
     func logout() {
35 32
         mineViewController.dismissController()
33
+        didCancel.onNext(())
36 34
         
37 35
         let vc = makeLoginViewController()
38 36
         vc.userInfoViewModel = mineViewController.userInfoViewModel
@@ -49,12 +47,24 @@ extension MineCoordinator: MineViewControllerDelegate {
49 47
             navigationController.pushViewController(vc)
50 48
         case .order:
51 49
             let vc = makeMineOrderViewController()
50
+            
51
+            vc.viewModel.didCancel.subscribe { _ in
52
+                self.didCancel.onNext(())
53
+                }.disposed(by: disposeBag)
52 54
             navigationController.pushViewController(vc)
53 55
         case .feedback:
54 56
             let vc = makeMineFeedbackViewController()
57
+            
58
+            vc.didCancel.subscribe { _ in
59
+                self.didCancel.onNext(())
60
+                }.disposed(by: disposeBag)
55 61
             navigationController.pushViewController(vc)
56 62
         case .about:
57 63
             let vc = makeMineAboutViewController()
64
+            
65
+            vc.didCancel.subscribe { _ in
66
+                self.didCancel.onNext(())
67
+                }.disposed(by: disposeBag)
58 68
             navigationController.pushViewController(vc)
59 69
         }
60 70
     }
@@ -66,39 +76,42 @@ extension MineCoordinator: MineViewControllerDelegate {
66 76
 extension MineCoordinator: MineGroupViewModelDelegate {
67 77
     func didSelect(_ item: GroupItem) {
68 78
         let coordinator = GroupCoordinator(makeGroupViewController(item: item),
69
-                                           navigationController: navigationController)
70
-        childCoordinator[.group] = coordinator
79
+                                           navigationController: navigationController,
80
+                                           navigationSource: .mineGroup)
81
+        coordinate(to: coordinator).subscribe({[weak self] _ in
82
+            self?.didCancel.onNext(())
83
+        }).disposed(by: disposeBag)
71 84
         navigationController.pushViewController(coordinator.groupViewController)
72 85
     }
73 86
 }
74 87
 
75 88
 fileprivate extension MineCoordinator {
76 89
     func makeLoginViewController() -> LoginViewController {
77
-        let vc = UIStoryboard.main.instantiateController(LoginViewController.self)
90
+        let vc = LoginViewController.instantiate()
78 91
 //        vc.userInfoViewModel = shareUserInfoViewModel
79 92
         return vc
80 93
     }
81 94
     
82 95
     func makeMineGroupViewController() -> MineGroupViewController {
83
-        let vc = UIStoryboard.mine.instantiateController(MineGroupViewController.self)
96
+        let vc = MineGroupViewController.instantiate()
84 97
         vc.viewModel = MineGroupViewModel()
85 98
         return vc
86 99
     }
87 100
     
88 101
     func makeMineOrderViewController() -> MineOrderViewController {
89
-        let vc = UIStoryboard.mine.instantiateController(MineOrderViewController.self)
102
+        let vc = MineOrderViewController.instantiate()
90 103
         vc.viewModel = MineOrderViewModel()
91 104
         return vc
92 105
     }
93 106
     
94 107
     func makeMineFeedbackViewController() -> MineFeedbackViewController {
95
-        let vc = UIStoryboard.mine.instantiateController(MineFeedbackViewController.self)
108
+        let vc = MineFeedbackViewController.instantiate()
96 109
         vc.feedbackAPI = FeedbackRemoteAPI()
97 110
         return vc
98 111
     }
99 112
     
100 113
     func makeMineAboutViewController() -> MineAboutViewController {
101
-        let vc = UIStoryboard.mine.instantiateController(MineAboutViewController.self)
114
+        let vc = MineAboutViewController.instantiate()
102 115
         return vc
103 116
     }
104 117
     

+ 14 - 2
PaiAi/Paiai_iOS/App/Mine/MineFeedbackViewController.swift

@@ -1,8 +1,8 @@
1 1
 //
2 2
 //  MineFeedbackViewController.swift
3
-//  PaiAi
3
+//  Paiai_iOS
4 4
 //
5
-//  Created by zhengjianfei on 16/4/7.
5
+//  Created by FFIB on 16/4/7.
6 6
 //  Copyright © 2016年 FFIB. All rights reserved.
7 7
 //
8 8
 
@@ -19,6 +19,7 @@ final class MineFeedbackViewController: UIViewController {
19 19
     
20 20
     fileprivate let disposeBag = DisposeBag()
21 21
     var feedbackAPI: FeedbackRemoteAPI!
22
+    var didCancel = PublishSubject<Void>()
22 23
     
23 24
     override func viewDidLoad() {
24 25
         super.viewDidLoad()
@@ -27,6 +28,11 @@ final class MineFeedbackViewController: UIViewController {
27 28
         textView.textContainerInset = UIEdgeInsets(top: 10, left: 10, bottom: 10, right: 10)
28 29
         bindTextViewToSendBtn()
29 30
     }
31
+    
32
+    override func viewWillDisappear(_ animated: Bool) {
33
+        super.viewWillDisappear(animated)
34
+        didCancel.onNext(())
35
+    }
30 36
 }
31 37
 
32 38
 /// storyboard button action
@@ -60,3 +66,9 @@ extension MineFeedbackViewController {
60 66
 }
61 67
 
62 68
 extension MineFeedbackViewController: NavigationBackViewController {}
69
+
70
+extension MineFeedbackViewController: Storyboarded {
71
+    static func instantiate() -> MineFeedbackViewController {
72
+        return UIStoryboard.mine.instantiateViewController(type: MineFeedbackViewController.self)
73
+    }
74
+}

+ 8 - 2
PaiAi/Paiai_iOS/App/Mine/MineGroupViewController.swift

@@ -1,8 +1,8 @@
1 1
 //
2 2
 //  MineGroupViewController.swift
3
-//  PaiAi
3
+//  Paiai_iOS
4 4
 //
5
-//  Created by zhengjianfei on 16/4/4.
5
+//  Created by FFIB on 16/4/4.
6 6
 //  Copyright © 2016年 FFIB. All rights reserved.
7 7
 //
8 8
 
@@ -132,3 +132,9 @@ fileprivate extension MineGroupViewController {
132 132
 }
133 133
 
134 134
 extension MineGroupViewController: NavigationBackViewController {}
135
+
136
+extension MineGroupViewController: Storyboarded {
137
+    static func instantiate() -> MineGroupViewController {
138
+        return UIStoryboard.mine.instantiateViewController(type: MineGroupViewController.self)
139
+    }
140
+}

+ 8 - 2
PaiAi/Paiai_iOS/App/Mine/MineOrderViewController.swift

@@ -1,8 +1,8 @@
1 1
 //
2 2
 //  MineOrderViewController.swift
3
-//  PaiAi
3
+//  Paiai_iOS
4 4
 //
5
-//  Created by zhengjianfei on 16/4/7.
5
+//  Created by FFIB on 16/4/7.
6 6
 //  Copyright © 2016年 FFIB. All rights reserved.
7 7
 //
8 8
 
@@ -115,3 +115,9 @@ fileprivate extension MineOrderViewController {
115 115
 }
116 116
 
117 117
 extension MineOrderViewController: NavigationBackViewController {}
118
+
119
+extension MineOrderViewController: Storyboarded {
120
+    static func instantiate() -> MineOrderViewController {
121
+        return UIStoryboard.mine.instantiateViewController(type: MineOrderViewController.self)
122
+    }
123
+}

+ 12 - 6
PaiAi/Paiai_iOS/App/Mine/MineViewController.swift

@@ -1,9 +1,9 @@
1 1
 //
2 2
 //  MineViewController.swift
3
-//  PaiAi
3
+//  Paiai_iOS
4 4
 //
5
-//  Created by ffib on 2018/12/6.
6
-//  Copyright © 2018 yb. All rights reserved.
5
+//  Created by FFIB on 2018/12/6.
6
+//  Copyright © 2018 FFIB. All rights reserved.
7 7
 //
8 8
 
9 9
 import UIKit
@@ -29,7 +29,7 @@ extension MineItem: CaseIterable {
29 29
     }
30 30
 }
31 31
 
32
-class MineViewController: SideViewController {
32
+final class MineViewController: SideViewController {
33 33
 
34 34
     @IBOutlet weak var headerImageView: UIImageView!
35 35
     @IBOutlet weak var nickNameLabel: UILabel!
@@ -40,10 +40,10 @@ class MineViewController: SideViewController {
40 40
         return mineView
41 41
     }
42 42
     
43
-    lazy var menuImage: [String] = {
43
+    fileprivate lazy var menuImage: [String] = {
44 44
         return ["mine-group", "mine-order", "mine-feedback", "mine-about"]
45 45
     }()
46
-    lazy var menuTitle: [String] = {
46
+    fileprivate lazy var menuTitle: [String] = {
47 47
         return ["我的照片群", "订单记录", "意见反馈", "关于"]
48 48
     }()
49 49
     
@@ -93,3 +93,9 @@ extension MineViewController: UITableViewDelegate {
93 93
         delegate?.didSelect(MineItem.allCases[indexPath.row])
94 94
     }
95 95
 }
96
+
97
+extension MineViewController: Storyboarded {
98
+    static func instantiate() -> MineViewController {
99
+        return UIStoryboard.mine.instantiateViewController(type: MineViewController.self)
100
+    }
101
+}

+ 2 - 2
PaiAi/Paiai_iOS/App/Mine/OrderCell.swift

@@ -1,8 +1,8 @@
1 1
 //
2 2
 //  OrderCell.swift
3
-//  PaiAi
3
+//  Paiai_iOS
4 4
 //
5
-//  Created by zhengjianfei on 16/4/21.
5
+//  Created by FFIB on 16/4/21.
6 6
 //  Copyright © 2016年 FFIB. All rights reserved.
7 7
 //
8 8
 

+ 2 - 3
PaiAi/Paiai_iOS/App/PhotoCell.swift

@@ -1,9 +1,9 @@
1 1
 //
2 2
 //  PhotoCell.swift
3
-//  PaiAi
3
+//  Paiai_iOS
4 4
 //
5 5
 //  Created by FFIB on 2017/10/27.
6
-//  Copyright © 2017年 yb. All rights reserved.
6
+//  Copyright © 2017年 FFIB. All rights reserved.
7 7
 //
8 8
 
9 9
 import UIKit
@@ -27,7 +27,6 @@ class PhotoCell: UICollectionViewCell {
27 27
     func setInfo(_ info: PhotoItem, source: PhotoCellSource) {
28 28
         headImageView.cornerRadius = 15
29 29
         headImageView.borderWidth = 0.5
30
-        headLabel.text = info.group_name
31 30
         
32 31
         switch source {
33 32
         case .home:

+ 2 - 2
PaiAi/Paiai_iOS/App/PhotoDetail/ImageCell.swift

@@ -1,8 +1,8 @@
1 1
 //
2 2
 //  ImageCell.swift
3
-//  PaiAi
3
+//  Paiai_iOS
4 4
 //
5
-//  Created by zhengjianfei on 16/4/9.
5
+//  Created by FFIB on 16/4/9.
6 6
 //  Copyright © 2016年 FFIB. All rights reserved.
7 7
 //
8 8
 

+ 2 - 2
PaiAi/Paiai_iOS/App/PhotoDetail/PhotoDetailCommentCell.swift

@@ -1,8 +1,8 @@
1 1
 //
2 2
 //  PhotoDetailCommentCell.swift
3
-//  PaiAi
3
+//  Paiai_iOS
4 4
 //
5
-//  Created by zhengjianfei on 16/4/8.
5
+//  Created by FFIB on 16/4/8.
6 6
 //  Copyright © 2016年 FFIB. All rights reserved.
7 7
 //
8 8
 

+ 13 - 14
PaiAi/Paiai_iOS/App/PhotoDetail/PhotoDetailCoordinator.swift

@@ -2,33 +2,31 @@
2 2
 //  PhotoDetailCoordinator.swift
3 3
 //  Paiai_iOS
4 4
 //
5
-//  Created by ffib on 2018/12/19.
6
-//  Copyright © 2018 yb. All rights reserved.
5
+//  Created by FFIB on 2018/12/19.
6
+//  Copyright © 2018 FFIB. All rights reserved.
7 7
 //
8 8
 
9
-import Foundation
9
+import UIKit
10
+import RxSwift
10 11
 import PaiaiDataKit
11 12
 
12
-final class PhotoDetailCoordinator: Coordinator {
13
+final class PhotoDetailCoordinator: BaseCoordinator<Void> {
13 14
     let navigationController: UINavigationController
14 15
     let photoDetailViewController: PhotoDetailViewController
15 16
     let shareViewModel: PhotoDetailViewModel
16 17
     
17
-    fileprivate var coordinators = [CoordinatorKey: Coordinator]()
18
-    
19 18
     init(_ photoDetailVC: PhotoDetailViewController,
20 19
          nav: UINavigationController,
21 20
          viewModel: PhotoDetailViewModel) {
22 21
         photoDetailViewController = photoDetailVC
23 22
         shareViewModel = viewModel
24 23
         navigationController = nav
25
-        photoDetailViewController.viewModel = viewModel
26
-        
27
-        viewModel.delegate = self
24
+        photoDetailViewController.viewModel = viewModel        
28 25
     }
29 26
     
30
-    func start() {
31
-        
27
+    override func start() -> Observable<Void> {
28
+        photoDetailViewController.viewModel.delegate = self
29
+        return .never()
32 30
     }
33 31
 }
34 32
 
@@ -37,14 +35,15 @@ extension PhotoDetailCoordinator: PhotoDetailViewModelDelegate {
37 35
         let vc = GroupViewController.instantiate()
38 36
         vc.viewModel = GroupViewModel(groupItem: item)
39 37
         let coordinator = GroupCoordinator(vc,
40
-                                           navigationController: navigationController)
41
-        coordinators[.group] = coordinator
38
+                                           navigationController: navigationController,
39
+                                           navigationSource: .photoDetail)
42 40
         
41
+        coordinate(to: coordinator).subscribe().disposed(by: disposeBag)
43 42
         navigationController.pushViewController(vc)
44 43
     }
45 44
     
46 45
     func didSelected() {
47
-        let vc = UIStoryboard.photoDetail.instantiateController(PhotoPreviewViewController.self)
46
+        let vc = PhotoPreviewViewController.instantiate()
48 47
         vc.viewModel = shareViewModel
49 48
         photoDetailViewController.presentController(vc)
50 49
     }

+ 2 - 2
PaiAi/Paiai_iOS/App/PhotoDetail/PhotoDetailImageCell.swift

@@ -2,8 +2,8 @@
2 2
 //  PhotoDetailImageCell.swift
3 3
 //  Paiai_iOS
4 4
 //
5
-//  Created by ffib on 2019/3/19.
6
-//  Copyright © 2019 yb. All rights reserved.
5
+//  Created by FFIB on 2019/3/19.
6
+//  Copyright © 2019 FFIB. All rights reserved.
7 7
 //
8 8
 
9 9
 import UIKit

+ 13 - 7
PaiAi/Paiai_iOS/App/PhotoDetail/PhotoDetailViewController.swift

@@ -1,8 +1,8 @@
1 1
 //
2 2
 //  PhotoDetailViewController.swift
3
-//  PaiAi
3
+//  Paiai_iOS
4 4
 //
5
-//  Created by zhengjianfei on 16/4/6.
5
+//  Created by FFIB on 16/4/6.
6 6
 //  Copyright © 2016年 FFIB. All rights reserved.
7 7
 //
8 8
 
@@ -97,11 +97,11 @@ extension PhotoDetailViewController {
97 97
 /// bind storyboard button action
98 98
 extension PhotoDetailViewController {
99 99
     @IBAction func share() {
100
-        let ctl = UIStoryboard.photoDetail.instantiateController(ShareViewController.self)
101
-        ctl.shareContent = "我使用拍爱分享了一张美图,你也快来试试吧"
102
-        //        ctl.shareImgUrlThumb = datas[currentPhotoIndex].photo_thumbnail_url
103
-        //        ctl.shareUrl = datas[currentPhotoIndex].photo_share_url
104
-        presentController(ctl)
100
+//        let ctl = ShareViewController UIStoryboard.photoDetail.instantiateController(ShareViewController.self)
101
+//        ctl.shareContent = "我使用拍爱分享了一张美图,你也快来试试吧"
102
+//        //        ctl.shareImgUrlThumb = datas[currentPhotoIndex].photo_thumbnail_url
103
+//        //        ctl.shareUrl = datas[currentPhotoIndex].photo_share_url
104
+//        presentController(ctl)
105 105
     }
106 106
     
107 107
     @IBAction func comment() {
@@ -380,3 +380,9 @@ extension PhotoDetailViewController: UICollectionViewDelegateFlowLayout {
380 380
 }
381 381
 
382 382
 extension PhotoDetailViewController: NavigationBackViewController {}
383
+
384
+extension PhotoDetailViewController: Storyboarded {
385
+    static func instantiate() -> PhotoDetailViewController {
386
+        return UIStoryboard.photoDetail.instantiateViewController(type: PhotoDetailViewController.self)
387
+    }
388
+}

+ 8 - 2
PaiAi/Paiai_iOS/App/PhotoDetail/PhotoPreviewViewController.swift

@@ -1,8 +1,8 @@
1 1
 //
2 2
 //  PhotoPreviewViewController.swift
3
-//  PaiAi
3
+//  Paiai_iOS
4 4
 //
5
-//  Created by zhengjianfei on 16/4/9.
5
+//  Created by FFIB on 16/4/9.
6 6
 //  Copyright © 2016年 FFIB. All rights reserved.
7 7
 //
8 8
 
@@ -122,3 +122,9 @@ extension PhotoPreviewViewController: UICollectionViewDelegateFlowLayout {
122 122
         return CGSize(width: collectionView.width, height: collectionView.height - 20)
123 123
     }
124 124
 }
125
+
126
+extension PhotoPreviewViewController: Storyboarded {
127
+    static func instantiate() -> PhotoPreviewViewController {
128
+        return UIStoryboard.photoDetail.instantiateViewController(type: PhotoPreviewViewController.self)
129
+    }
130
+}

+ 2 - 2
PaiAi/Paiai_iOS/App/PhotoDetail/ShareController.swift

@@ -1,8 +1,8 @@
1 1
 //
2 2
 //  ShareViewController.swift
3
-//  PaiAi
3
+//  Paiai_iOS
4 4
 //
5
-//  Created by zhengjianfei on 16/4/7.
5
+//  Created by FFIB on 16/4/7.
6 6
 //  Copyright © 2016年 FFIB. All rights reserved.
7 7
 //
8 8
 

+ 2 - 2
PaiAi/Paiai_iOS/Paiai_iOS.h

@@ -2,8 +2,8 @@
2 2
 //  Paiai_iOS.h
3 3
 //  Paiai_iOS
4 4
 //
5
-//  Created by ffib on 2018/12/19.
6
-//  Copyright © 2018 yb. All rights reserved.
5
+//  Created by FFIB on 2018/12/19.
6
+//  Copyright © 2018 FFIB. All rights reserved.
7 7
 //
8 8
 
9 9
 #import <UIKit/UIKit.h>

+ 41 - 0
PaiAi/Paiai_iOS/Reusable/BaseCoordinator.swift

@@ -0,0 +1,41 @@
1
+//
2
+//  BaseCoordinator.swift
3
+//  Paiai_iOS
4
+//
5
+//  Created by FFIB on 2019/4/29.
6
+//  Copyright © 2019 FFIB. All rights reserved.
7
+//
8
+
9
+import RxSwift
10
+import Foundation
11
+
12
+public class BaseCoordinator<ResultType> {
13
+    
14
+    typealias CoordinationResult = ResultType
15
+    
16
+    let disposeBag = DisposeBag()
17
+    let didCancel = PublishSubject<Void>()
18
+    
19
+    private let identifier = UUID()
20
+    private var childCoordinators = [UUID: Any]()
21
+    
22
+    private func store<T>(coordinator: BaseCoordinator<T>) {
23
+        childCoordinators[coordinator.identifier] = coordinator
24
+    }
25
+    
26
+    private func free<T>(coordinator: BaseCoordinator<T>) {
27
+        childCoordinators[coordinator.identifier] = nil
28
+    }
29
+    
30
+    func coordinate<T>(to coordinator: BaseCoordinator<T>) -> Observable<T> {
31
+        store(coordinator: coordinator)
32
+        return coordinator.start()
33
+            .do(onNext: { [weak self] _ in
34
+                self?.free(coordinator: coordinator)
35
+            })
36
+    }
37
+
38
+    func start() -> Observable<ResultType> {
39
+        fatalError("Start method should be implemented.")
40
+    }
41
+}

+ 2 - 2
PaiAi/Paiai_iOS/Reusable/Extension/UIImageView+Kingfisher.swift

@@ -1,8 +1,8 @@
1 1
 //
2 2
 //  UIImageView+Kingfisher.swift
3
-//  PaiAi
3
+//  Paiai_iOS
4 4
 //
5
-//  Created by mac on 16/7/21.
5
+//  Created by FFIB on 16/7/21.
6 6
 //  Copyright © 2016年 FFIB. All rights reserved.
7 7
 //
8 8
 

+ 11 - 0
PaiAi/Paiai_iOS/Reusable/NavigationSource.swift

@@ -0,0 +1,11 @@
1
+//
2
+//  NavigationSource.swift
3
+//  Paiai_iOS
4
+//
5
+//  Created by ffib on 2019/5/5.
6
+//  Copyright © 2019 FFIB. All rights reserved.
7
+//
8
+
9
+import Foundation
10
+
11
+enum NavigationSource {}

Inloggen - Gogs: Go Git Service

Inloggen