如何保存照片库中的选定图像以在swift中显示任何视图控制器

如何保存照片库中的选定图像以在swift中显示任何视图控制器,swift,xcode,uibutton,uiimageview,Swift,Xcode,Uibutton,Uiimageview,我正在开发我的应用程序,有一次我被卡住了。 有一个UIIMAGEVIEW和一个上载按钮。 所以,当用户点击上传按钮,他进入照片库选择图像后,我在UIIMAGEVIEW上显示该图像。 所以我的问题是:- 在UIIMAGEVIEW上显示图像后,我想将该图像保存在应用程序上,以便在不同的视图控制器上显示相同的图像。您可以将该图像放入全局变量中。全局变量可在所有应用程序中使用: var imageSelected:UIImage? // Value will be nil if no image has

我正在开发我的应用程序,有一次我被卡住了。 有一个UIIMAGEVIEW和一个上载按钮。 所以,当用户点击上传按钮,他进入照片库选择图像后,我在UIIMAGEVIEW上显示该图像。 所以我的问题是:-
在UIIMAGEVIEW上显示图像后,我想将该图像保存在应用程序上,以便在不同的视图控制器上显示相同的图像。

您可以将该图像放入全局变量中。全局变量可在所有应用程序中使用:

var imageSelected:UIImage? // Value will be nil if no image has been set

class ViewController1 {
    // Puts your image inside a global variable
    image = yourImage
}

class ViewController2 {
    // Uses the image that was defined inside the global variable
    @IBOutlet weak var imageView: UIView!
    imageView.image = imageSelected
}

在这种情况下,您可以尝试以下代码段:

func saveImgToDocumentDirectory(image: UIImage ) {
    let documentsDirectory = FileManager.default.urls(for: .documentDirectory, in: .userDomainMask).first!
    let fileName = "image.png" // image name for identify particular image 
    let fileURL = documentsDirectory.appendingPathComponent(fileName)
    if let data = UIImageJPEGRepresentation(image, 1.0),!FileManager.default.fileExists(atPath: fileURL.path){
        do {
            try data.write(to: fileURL)
            print("file saved")
        } catch {
            print("error saving file:", error)
        }
    }
}


func loadImgFromDocumentDirectory(nameOfImage : String) -> UIImage {
    let nsDocumentDirectory = FileManager.SearchPathDirectory.documentDirectory
    let nsUserDomainMask = FileManager.SearchPathDomainMask.userDomainMask
    let paths = NSSearchPathForDirectoriesInDomains(nsDocumentDirectory, nsUserDomainMask, true)
    if let dirPath = paths.first{
        let imageURL = URL(fileURLWithPath: dirPath).appendingPathComponent(nameOfImage)
        let image    = UIImage(contentsOfFile: imageURL.path)
        return image!
    }
    return UIImage.init(named: "default.png")!
}
图像名称是图像的唯一标识符,在存储图像时,需要指定图像名称“imageName”,以便使用相同的名称轻松获取特定图像