blob: 2dbd1fca86a86b62f3a6000b5bf704f1c4515f3e (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
|
import SwiftUI
import UIKit
enum ExportPresenter {
static func share(filename: String, contents: String) {
share(filename: filename, data: Data(contents.utf8))
}
static func share(filename: String, data: Data) {
let url = FileManager.default.temporaryDirectory.appendingPathComponent(filename)
do {
try data.write(to: url, options: .atomic)
} catch {
return
}
let activityController = UIActivityViewController(activityItems: [url], applicationActivities: nil)
guard let windowScene = UIApplication.shared.connectedScenes.first as? UIWindowScene,
let rootViewController = windowScene.keyWindow?.rootViewController else {
return
}
var presenter = rootViewController
while let presentedViewController = presenter.presentedViewController {
presenter = presentedViewController
}
activityController.popoverPresentationController?.sourceView = presenter.view
presenter.present(activityController, animated: true)
}
}
|