summaryrefslogtreecommitdiff
path: root/DomainDig/ExportPresenter.swift
diff options
context:
space:
mode:
Diffstat (limited to 'DomainDig/ExportPresenter.swift')
-rw-r--r--DomainDig/ExportPresenter.swift28
1 files changed, 28 insertions, 0 deletions
diff --git a/DomainDig/ExportPresenter.swift b/DomainDig/ExportPresenter.swift
new file mode 100644
index 0000000..82ec7ae
--- /dev/null
+++ b/DomainDig/ExportPresenter.swift
@@ -0,0 +1,28 @@
+import SwiftUI
+import UIKit
+
+enum ExportPresenter {
+ static func share(filename: String, contents: String) {
+ let url = FileManager.default.temporaryDirectory.appendingPathComponent(filename)
+
+ do {
+ try contents.write(to: url, atomically: true, encoding: .utf8)
+ } 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)
+ }
+}