Reputation: 11
I am working on UIDocumentPickerViewController() in Swift. After opening the document picker the files and images look blurred and I can't select any of them. I have attached the screenshot and the code below. Any idea why these files and images are not selectable?
extension BecomeMuftiTwoVC: UIDocumentPickerDelegate {
func documentPicker(_ controller: UIDocumentPickerViewController, didPickDocumentsAt urls: [URL]) {
guard let selectedFilesURL = urls.first else {
return
}
let dir = FileManager.default.urls(for: .documentDirectory, in: .userDomainMask).first!
let sandboxFileURL = dir.appendingPathComponent(selectedFilesURL.lastPathComponent)
if FileManager.default.fileExists(atPath: sandboxFileURL.path) {
print("Already File Exist")
}
else {
do{
try FileManager.default.copyItem(at: selectedFilesURL, to: sandboxFileURL)
print("Copied Files")
}
catch{
print("Files Are not exist ")
}
}
}
}
//MARK: - Import File Btn Action
@IBAction func importFile(_ sender: Any) {
let documentPicker = UIDocumentPickerViewController(documentTypes: [KUTTypedPlainText], in: .import)
documentPicker.delegate = self
documentPicker.allowsMultipleSelection = false
present(documentPicker, animated: true, completion: nil)
Upvotes: 0
Views: 2879
Reputation: 91
Your line
let documentPicker = UIDocumentPickerViewController(documentTypes: [KUTTypedPlainText], in: .import)
seems to initialize a document picker for plain-text files only.
Try this instead:
let documentPicker = UIDocumentPickerViewController(documentTypes: [kUTTypeImage as String], in: .import)
Also, be careful as the initializer init(documentTypes:in:)
is deprecated since iOS14.0. So for iOS14 and above, you should use:
let documentPicker = UIDocumentPickerViewController(forOpeningContentTypes: [.heic, .heif, .livePhoto, .image])
Upvotes: 1