iOS 14 中 UIDocumentPickerViewController 的初始化

swiftIOS

1个回答

写回答

1336107333

2025-06-16 18:05

+ 关注

IOS
IOS

IOS 14中,苹果引入了一个名为UIDocumentPickerViewController的新类,用于在应用程序中实现文件选择和导入功能。这个类的初始化方式为init(forOpeningContentTypes: [UTType]? = nil),通过传入一个可选的UTType数组参数,我们可以限定用户只能选择特定类型的文件。

IOS 14之前,我们通常使用UIDocumentPickerViewController的init(documentTypes:in: )方法来实现文件选择功能。但是这个方法有一个局限性,就是只能选择与应用程序注册的文件类型相匹配的文件。而新的初始化方法则提供了更大的灵活性,我们可以根据具体需求选择支持的文件类型。

下面是一个使用UIDocumentPickerViewController初始化的案例代码:

Swift

import UIKit

class ViewController: UIViewController, UIDocumentPickerDelegate {

override func viewDidLoad() {

super.viewDidLoad()

let documentPicker = UIDocumentPickerViewController(forOpeningContentTypes: [UTType.text])

documentPicker.delegate = self

present(documentPicker, animated: true, completion: nil)

}

func documentPicker(_ controller: UIDocumentPickerViewController, didPickDocumentsAt urls: [URL]) {

// 处理已选择的文件

}

func documentPickerWasCancelled(_ controller: UIDocumentPickerViewController) {

// 用户取消了文件选择

}

}

在上面的代码中,我们创建了一个UIDocumentPickerViewController实例,并指定只能选择文本文件。然后,我们设置了该实例的代理为当前的ViewController,并通过present方法将其显示出来。当用户选择了一个或多个文件后,会调用代理方法documentPicker(_:didPickDocumentsAt:),我们可以在这个方法中处理已选择的文件。如果用户取消了文件选择,会调用代理方法documentPickerWasCancelled(_:),我们可以在这个方法中做相应的处理。

自定义可选文件类型

除了指定预定义的文件类型,我们还可以自定义支持的文件类型。下面是一个示例代码:

Swift

let documentTypes: [UTType] = [

UTType.audio,

UTType.movie,

UTType.pdf,

UTType.image,

]

let documentPicker = UIDocumentPickerViewController(forOpeningContentTypes: documentTypes)

在这个示例中,我们创建了一个包含音频、视频、PDF和图片文件类型的UTType数组。然后,我们将这个数组作为参数传递给UIDocumentPickerViewController的初始化方法,从而限定用户只能选择这些文件类型。

一下,IOS 14中的UIDocumentPickerViewController为我们提供了更加灵活和强大的文件选择和导入功能。通过指定支持的文件类型,我们可以限制用户只能选择特定类型的文件,从而提高应用程序的安全性和用户体验。

举报有用(4分享收藏

Copyright © 2025 IZhiDa.com All Rights Reserved.

知答 版权所有 粤ICP备2023042255号