2

PDFKit を使用して、アプリ内に PDF ドキュメントを作成しました。プレビューで正常に表示でき、プレビュー コントローラーから次のコードを使用して、ユーザーに共有アクションを提示します。

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

documentData作成された pdf ドキュメントが含まれています。

ユーザーが「ファイルに保存」を選択すると、ドキュメントはデフォルト名「PDF Document.pdf」を取得しますが、これはユーザーが変更できます。

別のデフォルト ファイル名を指定するにはどうすればよいですか?

4

2 に答える 2

3

本当の答えではなく、私が見つけた回避策:

PDFのメモリ内コピーを使用するのではなくdata、apps tmp フォルダーに書き込むことができます。

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)")
}

共有アクションは次のようになります。

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

ユーザーが「ファイルに保存」アクションを選択すると、デフォルトのファイル名として「myfilename.pdf」が表示されるようになりました。

于 2019-11-20T11:44:39.933 に答える