Browse Source

Merge branch 'develop' of http://git.caihongxingqiu.net/rainbow/platform-ios into develop

南鑫林 5 years ago
parent
commit
50037d0513

+ 18 - 5
RainbowPlanet/RainbowPlanet/Modules/PublishModule/PublishTakePhoto/PublishConfirmPhotoController.swift

@@ -18,6 +18,9 @@ class PublishConfirmPhotoController: BaseViewController {
         }
     }
     
+    typealias PubImgClosure = (_ selectedAssetArray: Array<UIImage>) -> Void
+    var pubImgClosure: PubImgClosure?
+    
     override func viewDidLoad() {
         super.viewDidLoad()
         setupViews()
@@ -73,13 +76,23 @@ class PublishConfirmPhotoController: BaseViewController {
         usePhotoBtn.titleLabel?.font = kMediumFont15
         usePhotoBtn.rx.tap.subscribe(onNext: { [weak self] (data) in
             PHPhotoLibrary.shared().performChanges({
+                _ = PHAssetChangeRequest.creationRequestForAsset(from: self!.photoImg!)
                 
-                _ = PHAssetChangeRequest.creationRequestForAsset(from: self!.photoImg!)}, completionHandler: { (success, error) in
-                    if success != true{
-                        SwiftProgressHUD.shared().showText("保存失败")
-                        return
+            }, completionHandler: { (success, error) in
+                    // 写入相册成功后,回到主线程进行流程
+                    DispatchQueue.main.async {
+                        if success != true{
+                            SwiftProgressHUD.shared().showText("保存失败")
+                            return
+                        }
+                        
+                        self?.dismiss(animated: false, completion: nil)
+                        // 保存成功,跳转至发布
+                        let imageArr: Array<UIImage> = [self!.photoImg!]
+                        if let pubImgClosure = self?.pubImgClosure {
+                            pubImgClosure(imageArr)
+                        }
                     }
-                    print("保存成功")
             })
             
         }).disposed(by: disposeBag)

+ 19 - 3
RainbowPlanet/RainbowPlanet/Modules/PublishModule/PublishTakePhoto/PublishTakePhotoController.swift

@@ -22,6 +22,9 @@ class PublishTakePhotoController: BaseViewController {
     typealias DismissClosure = () -> Void
     var dismissClosure: DismissClosure?
     
+    typealias PubImgTransClosure = (_ selectedAssetArray: Array<UIImage>) -> Void
+    var pubImgTransClosure: PubImgTransClosure?
+    
     var curFlashType : FlashType! = .close
     
     override func viewDidLoad() {
@@ -144,14 +147,27 @@ class PublishTakePhotoController: BaseViewController {
         photoButton.setImage(kImage(name: "video_btn_shoot"), for: UIControl.State.normal)
         photoButton.rx.tap.subscribe(onNext: { [weak self] (data) in
             self?.recorder.takePhoto({ (image, rawImage) in
-                let confirmVc = PublishConfirmPhotoController()
-                confirmVc.photoImg = image
-                self?.present(confirmVc, animated: true, completion: nil)
+                // 图片为异步获取,需回到主线程进行跳转
+                DispatchQueue.main.async {
+                    self?.jumpToConfirmController(image!)
+                }
             })
         }).disposed(by: disposeBag)
         return photoButton
     }()
     
+    func jumpToConfirmController(_ image: UIImage) {
+        let confirmVc = PublishConfirmPhotoController()
+        confirmVc.photoImg = image
+        confirmVc.pubImgClosure = {
+            [weak self] (imageArray) in
+            if let pubImgTransClosure = self?.pubImgTransClosure {
+                pubImgTransClosure(imageArray)
+            }
+        }
+        self.present(confirmVc, animated: true, completion: nil)
+    }
+    
 }
 
 extension PublishTakePhotoController : JXSegmentedListContainerViewListDelegate {

+ 6 - 0
RainbowPlanet/RainbowPlanet/Modules/PublishModule/PublishViewController.swift

@@ -263,6 +263,12 @@ extension PublishViewController :JXSegmentedListContainerViewDataSource {
                 [weak self] in
                 self?.dismiss(animated: true, completion: nil)
             }
+            photoVc.pubImgTransClosure = {
+                [weak self] (imageArray) in                
+                let pubVc = PublishEditController()
+                pubVc.imageArr = imageArray
+                self?.navigationController?.pushViewController(pubVc, animated: true)
+            }
             return photoVc
         }
     }