При разработке iOS Swift работа с файлами и файловым менеджером — обычная задача. Одним из частых требований является предоставление пользователям возможности выбирать файлы PDF или документов из файлового менеджера и программно получать пути к ним. В этой статье мы рассмотрим различные методы достижения этой функциональности, предоставляя попутно разговорные объяснения и примеры кода.
Метод 1: UIDocumentPickerViewController
Класс UIDocumentPickerViewController предоставляет встроенный интерфейс выбора файлов, который позволяет пользователям выбирать файлы PDF и документы из файлового менеджера. Чтобы получить путь к выбранному файлу, выполните следующие действия:
- Импортируйте платформу MobileCoreServices в файл Swift.
- Создайте экземпляр UIDocumentPickerViewController и представьте его в своем контроллере представления.
- Реализовать метод делегата «documentPicker(_:didPickDocumentsAt:)» для обработки выбранных документов.
- Получите доступ к URL-адресу выбранного документа, используя свойство «url» первого элемента в параметре массива «urls».
- Преобразуйте URL-адрес в строку пути к файлу с помощью свойства path.
Пример кода:
import MobileCoreServices
// Step 2:
let documentPicker = UIDocumentPickerViewController(documentTypes: [kUTTypePDF, kUTTypePlainText], in: .import)
documentPicker.delegate = self
present(documentPicker, animated: true, completion: nil)
// Step 3:
func documentPicker(_ controller: UIDocumentPickerViewController, didPickDocumentsAt urls: [URL]) {
guard let selectedURL = urls.first else {
return
}
// Step 4:
let filePath = selectedURL.path
print("Selected file path: \(filePath)")
}
Метод 2: UIImagePickerController
Если вы хотите ограничить выбор изображениями или фотографиями, вы можете использовать класс UIImagePickerController. Хотя он в первую очередь предназначен для выбора изображений, он также может обрабатывать файлы PDF и документы. Выполните следующие действия, чтобы получить путь к выбранному файлу:
- Импортируйте платформу MobileCoreServices в файл Swift.
- Создайте экземпляр UIImagePickerController и представьте его в своем контроллере представления.
- Реализуйте метод делегата «imagePickerController(_:didFinishPickingMediaWithInfo:)» для обработки выбранного мультимедиа.
- Получите доступ к URL-адресу выбранного файла с помощью ключа «UIImagePickerControllerReferenceURL» в информационном словаре.
- Преобразуйте URL-адрес в строку пути к файлу с помощью свойства path.
Пример кода:
import MobileCoreServices
// Step 2:
let imagePicker = UIImagePickerController()
imagePicker.sourceType = .photoLibrary
imagePicker.delegate = self
present(imagePicker, animated: true, completion: nil)
// Step 3:
func imagePickerController(_ picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [UIImagePickerController.InfoKey: Any]) {
guard let selectedURL = info[UIImagePickerController.InfoKey.referenceURL] as? URL else {
return
}
// Step 4:
let filePath = selectedURL.path
print("Selected file path: \(filePath)")
}
Метод 3: UIDocumentInteractionController
Класс UIDocumentInteractionController позволяет просматривать документы в вашем приложении и взаимодействовать с ними. Он также предоставляет способ получить путь к выбранному документу. Выполните следующие действия:
- Импортируйте платформу MobileCoreServices в файл Swift.
- Создайте экземпляр UIDocumentInteractionController и установите его URL-адрес на URL-адрес выбранного документа.
- Реализуйте метод делегата «documentInteractionController(_:willBeginSendingToApplication:)» для обработки взаимодействия с документом.
- Получите доступ к URL-адресу выбранного документа, используя свойство «url» documentInteractionController.
Пример кода:
import MobileCoreServices
// Step 2:
let documentInteractionController = UIDocumentInteractionController(url: selectedURL)
documentInteractionController.delegate = self
documentInteractionController.presentPreview(animated: true)
// Step 3:
func documentInteractionController(_ controller: UIDocumentInteractionController, willBeginSendingToApplication application: String?) {
guard let selectedURL = controller.url else {
return
}
// Step 4:
let filePath = selectedURL.path
print("Selected file path: \(filePath)")
}
В этой статье мы рассмотрели три различных метода получения пути к выбранным файлам PDF и документов из файлового менеджера iOS Swift. Используя UIDocumentPickerViewController, UIImagePickerController и UIDocumentInteractionController, вы можете предоставить пользователям возможность удобного выбора файлов, одновременно упрощая процесс поиска пути программным способом.
Реализуя эти методы в своих приложениях iOS Swift, вы можете расширить функциональность своего приложения и улучшить взаимодействие с пользователем при работе с PDF-файлами и документами.
Узнайте, как легко получить путь к выбранным файлам PDF и документов из файлового менеджера iOS Swift. В этой статье мы рассмотрим несколько методов, которые обеспечивают простой подход к достижению этой функциональности. Независимо от того, работаете ли вы с UIDocumentPickerViewController, UIImagePickerController или UIDocumentInteractionController, мы предоставим вам практические примеры кода и пояснения.
Метод 1: использование UIDocumentPickerViewController
UIDocumentPickerViewController — это встроенный класс, предлагающий удобный интерфейс выбора файлов. Выполните следующие действия, чтобы получить путь к выбранным файлам PDF и документов:
- Импортируйте платформу MobileCoreServices.
- Создайте экземпляр UIDocumentPickerViewController и представьте его в своем контроллере представления.
- Реализовать метод делегата «documentPicker(_:didPickDocumentsAt:)» для обработки выбранных документов.
- Получите доступ к URL-адресу выбранного документа, используя свойство «url» первого элемента массива «urls».
- Преобразуйте URL-адрес в строку пути к файлу с помощью свойства path.
Пример кода:
import MobileCoreServices
// Step 2:
let documentPicker = UIDocumentPickerViewController(documentTypes: [kUTTypePDF, kUTTypePlainText], in: .import)
documentPicker.delegate = self
present(documentPicker, animated: true, completion: nil)
// Step 3:
func documentPicker(_ controller: UIDocumentPickerViewController, didPickDocumentsAt urls: [URL]) {
guard let selectedURL = urls.first else { return }
// Step 4:
let filePath = selectedURL.path
print("Selected file path: \(filePath)")
}
Метод 2: использование UIImagePickerController
Если вы хотите ограничить выбор файлов изображениями или фотографиями, UIImagePickerController — подходящий выбор. Несмотря на то, что он в основном ориентирован на изображения, он также может обрабатывать файлы PDF и документы. Вот как получить путь к выбранному файлу:
- Импортируйте платформу MobileCoreServices.
- Создайте экземпляр UIImagePickerController и представьте его в своем контроллере представления.
- Реализуйте метод делегата «imagePickerController(_:didFinishPickingMediaWithInfo:)» для обработки выбранного мультимедиа.
- Получите доступ к URL-адресу выбранного файла с помощью ключа «UIImagePickerControllerReferenceURL» в информационном словаре.
- Преобразуйте URL-адрес в строку пути к файлу с помощью свойства path.
Пример кода:
import MobileCoreServices
// Step 2:
let imagePicker = UIImagePickerController()
imagePicker.sourceType = .photoLibrary
imagePicker.delegate = self
present(imagePicker, animated: true, completion: nil)
// Step 3:
func imagePickerController(_ picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [UIImagePickerController.InfoKey: Any]) {
guard let selectedURL = info[UIImagePickerController.InfoKey.referenceURL] as? URL else { return }
// Step 4:
let filePath = selectedURL.path
print("Selected file path: \(filePath)")
}
Метод 3: использование UIDocumentInteractionController
UIDocumentInteractionController обеспечивает предварительный просмотр документа и взаимодействие с ним внутри вашего приложения, а также возможность получить путь к выбранному документу. Выполните следующие действия:
- Импортируйте платформу MobileCoreServices.
- Создайте экземпляр UIDocumentInteractionController и установите его URL-адрес на URL-адрес выбранного документа.
- Реализуйте метод делегата «documentInteractionController(_:willBeginSendingToApplication:)» для обработки взаимодействия с документом.
- Получите доступ к URL-адресу выбранного документа, используя свойство «url» documentInteractionController.
- Преобразуйте URL-адрес в строку пути к файлу с помощью свойства path.
Пример кода:
import MobileCoreServices
// Step 2:
let documentInteractionController = UIDocumentInteractionController(url: selectedURL)
documentInteractionController.delegate = self
documentInteractionController.presentPreview(animated: true)
// Step 3:
func documentInteractionController(_ controller: UIDocumentInteractionController, willBeginSendingToApplication application: String?) {
guard let selectedURL = controller.url else { return }
// Step 4:
let filePath = selectedURL.path
print("Selected file path: \(filePath)")
}
Получение пути к выбранным файлам PDF и документов из файлового менеджера iOS Swift теперь стало более доступным, чем когда-либо. Независимо от того, выберете ли вы UIDocumentPickerViewController, UIImagePickerController или UIDocumentInteractionController, вы можете улучшить функциональность своего приложения, предоставляя пользователям возможность беспрепятственного выбора файлов. Не забудьте импортировать платформу MobileCoreServices и соответствующим образом обработать методы делегата, чтобы получить желаемый путь к файлу.