본문 바로가기
Error

SwiftUI Share File Button

by pavi03 2022. 2. 18.

[SwiftUI]

코드
                    Button(action: {
                        exportShow = true
                    }) {
                        Image(systemName: "square.and.arrow.up")
                            .frame(width: 30.0, height: 30.0)
                    }
                    .sheet(isPresented: $exportShow) {
                        if let dir = FileManager.default.urls(for: .documentDirectory, in: .userDomainMask).first {
                            let fileURL = dir.appendingPathComponent(repo_n + "/") // 디렉토리 공유 (파일 이름 넣으면 파일을 공유할 수 있음)
                            ShareSheet(activityItems: [fileURL])
                        }
                    }
    struct ShareSheet: UIViewControllerRepresentable {
        typealias Callback = (_ activityType: UIActivity.ActivityType?, _ completed: Bool, _ returnedItems: [Any]?, _ error: Error?) -> Void
        
        let activityItems: [Any]
        let applicationActivities: [UIActivity]? = nil
        let excludedActivityTypes: [UIActivity.ActivityType]? = nil
        let callback: Callback? = nil
        
        func makeUIViewController(context: Context) -> UIActivityViewController {
            let controller = UIActivityViewController(
                activityItems: activityItems,
                applicationActivities: applicationActivities)
            
            controller.excludedActivityTypes = excludedActivityTypes
            controller.completionWithItemsHandler = callback
            return controller
        }
        
        func updateUIViewController(_ uiViewController: UIActivityViewController, context: Context) {
            // nothing to do here
        }
    }