如何将图像保存到具有来自先前视图控制器的 id 的单独相册中

Posted

技术标签:

【中文标题】如何将图像保存到具有来自先前视图控制器的 id 的单独相册中【英文标题】:How to save images into a separate album with an id from previous view controller 【发布时间】:2017-07-04 16:14:22 【问题描述】:

每次拍摄图像时,我都会尝试将从相机拍摄的图像保存到单独的相册中。现在使用我编写的代码将图像保存但保存到共享相册中,它没有保存到我希望保存的文件夹中,而是创建了文件夹。此外,我希望每次使用专辑名称为“LiQu”拍摄图像时创建一个新文件夹,但我需要它在从前一个视图控制器获取的文件夹旁边有一个 ID 号。 我已经上传了我对代码的尝试。

我正在尝试创建目录并将图像保存到的视图控制器。

import UIKit
import Photos

let albumName = "LiQu"  // "+ID" i want to add the ID number from the previous view controller which is entered by the user
var transferImage: UIImage?

//var redlineX: Double = 0


class ViewController: UIViewController, UIImagePickerControllerDelegate, UINavigationControllerDelegate 

    var albumFound : Bool = false
    var assetCollection: PHAssetCollection!
    var photosAsset: PHFetchResult<AnyObject>!



    override func viewDidLoad() 
        super.viewDidLoad()

        self.view.backgroundColor = UIColor.init(red: 0.32, green: 0.667, blue: 0.754, alpha: 1)

        //Check if LiQu album exists

        let fetchOptions = PHFetchOptions()

        fetchOptions.predicate = NSPredicate(format: "title = %@", albumName)

        let collection = PHAssetCollection.fetchAssetCollections(with: .album, subtype: .any, options: fetchOptions)


        if (collection.firstObject != nil)

        // found the album

        self.albumFound = true
        self.assetCollection = collection.firstObject!

        else
            // create the album


            phphotoLibrary.shared().performChanges(
                //let request = PHAssetCollectionChangeRequest.creationRequestForAssetCollection(withTitle: albumName)
                PHAssetCollectionChangeRequest.creationRequestForAssetCollection(withTitle: albumName)
            )

                  

    

视图控制器,我想使用输入的“ID”作为上面代码中的目录名称。

import UIKit

class FormViewController: UIViewController 

    @IBOutlet weak var ID: UITextField!

    @IBOutlet weak var organdonationno: UITextField!

    @IBOutlet weak var donorage: UITextField!

    @IBOutlet weak var snodname: UITextField!

    @IBOutlet weak var donorshospital: UITextField!

    @IBOutlet weak var date: UITextField!

我希望这是有道理的,并且非常感谢提供的任何帮助,我是这方面的新手,所以如果我犯了任何错误,请多多包涵。

谢谢你

【问题讨论】:

@luckyShubhra 这是我的问题。如果你能帮忙就太好了!谢谢你 对迟到的回复表示歉意。我怎么错过了你的问题。我已经添加了答案。如果您有任何进一步的疑问,请告诉我。 【参考方案1】:

您可以将 ID 从 FormViewController 传递给 ViewController,并在创建相册时将 id 附加到您的相册名称。在 ViewController 中定义 id 为

var id : String = "" 

将 id 从 FormViewController 传递给您的 ViewController

let myVC = storyboard?.instantiateViewControllerWithIdentifier("ViewController ") as! ViewController 
myVC.id= ID!
navigationController?.pushViewController(myVC, animated: true)

在创建新专辑之前将 id 附加到专辑名称以将图像另存为。

albumName += id.

您可以参考this 链接以帮助将图像保存到 PHAssest 中的自定义相册。

【讨论】:

以上是关于如何将图像保存到具有来自先前视图控制器的 id 的单独相册中的主要内容,如果未能解决你的问题,请参考以下文章

保存来自页面视图控制器的文本输入

如何回到不同故事板的先前视图控制器?

如何将来自先前类的值存储到 C++ 中的向量中?

如何使用来自另一个视图控制器swift的用户输入创建具有表视图单元格的列表

如何将一些图像作为一个图像保存到swift中的照片库?

如何快速将几张图像作为一张图像保存到照片库?