将pdf文档保存到iOS文件应用程序时如何指定文件名?

Mic*_*onz 3 ios uiactivityviewcontroller files-app ios-pdfkit

使用 PDFKit,我在我的应用程序中创建了一个 pdf 文档。我可以成功地在预览中显示它,并在预览控制器中使用以下代码向用户展示共享操作:

@objc func shareAction(_ sender: UIBarButtonItem)
{
    if let data = documentData
    {
        let vc = UIActivityViewController(activityItems: [data], applicationActivities: [])
        present(vc, animated: true, completion: nil     
    }
}
Run Code Online (Sandbox Code Playgroud)

documentData包含创建的 pdf 文档。

当用户选择“保存到文件”时,文档将获得默认名称“PDF Document.pdf”,用户可以更改该名称。

如何提供不同的默认文件名?

Mic*_*onz 6

不是真正的答案,而是我找到的解决方法:

data我可以将其写入 apps tmp 文件夹,而不是使用 PDF 的内存副本:

var fileURL : URL?
do
{
    let filename = "myfilename.pdf"
    let tmpDirectory = FileManager.default.temporaryDirectory
    fileURL = tmpDirectory.appendingPathComponent(filename)
    try data.write(to: fileURL!)
}
catch
{
    print ("Cannot write PDF: \(error)")
}
Run Code Online (Sandbox Code Playgroud)

共享操作将如下所示:

@objc func shareAction(_ sender: UIBarButtonItem)
{
    if let url = fileURL
    {
        let vc = UIActivityViewController(activityItems: [url], applicationActivities: [])
        present(vc, animated: true, completion: nil     
    }
}
Run Code Online (Sandbox Code Playgroud)

现在,当用户选择“保存到文件”操作时,“myfilename.pdf”将显示为默认文件名。