ShareLink "save Image" action dismiss parent view

This thread has been locked by a moderator; it no longer accepts new replies.

ShareLink works fine except for save image action which dismiss the presenting view

first time system shows the premission alert so image get saved without any problem but for the next saves image get saved then share sheet dismiss and also presenting view dismiss as well

here is a sample code

`

 internal import System
 import UniformTypeIdentifiers
 import SwiftUI

struct RootView: View {
@State private var isPresented: Bool = false

var body: some View {
    ZStack {
        Color.white
        Button("Show parent view") {
            isPresented = true
        }
        
    }
    .sheet(isPresented: $isPresented) {
        ParentView()
    }
}
}

struct ParentView: View {
@State private var isPresented: Bool = false

var body: some View {
    NavigationStack {
        ZStack {
            Color.red.opacity(0.5)
        }
        .toolbar {
            ToolbarItem() {
                let name = "\(UUID().uuidString)"
                let image =  UIImage(named: "after")!
                return ShareLink(
                    item: ShareableImage(image: image, fileName: name),
                    preview: SharePreview(
                        name,
                        image: Image(uiImage: image)
                    )
                ) {
                    Image(uiImage: UIImage(resource: .Icons.share24))
                        .resizable()
                        .foregroundStyle(Color.black)
                        .frame(width: 24, height: 24)
                }
            }

        }
    }
}
}

struct ShareableImage: Transferable {
let image: UIImage
let fileName: String  

static var transferRepresentation: some TransferRepresentation {
    FileRepresentation(exportedContentType: .png) { item in
        
        let fileURL = FileManager.default.temporaryDirectory
            .appendingPathComponent(item.fileName)
            .appendingPathExtension("png")
        
        guard let data = item.image.pngData() else {
            throw NSError(domain: "ImageEncodingError", code: 0)
        }
        
        try data.write(to: fileURL)
        
        return SentTransferredFile(fileURL)
    }
}
}

`

Answered by DTS Engineer in 879605022

Let’s focus this discussion on your other thread.

Share and Enjoy

Quinn “The Eskimo!” @ Developer Technical Support @ Apple
let myEmail = "eskimo" + "1" + "@" + "apple.com"

Boost

Let’s focus this discussion on your other thread.

Share and Enjoy

Quinn “The Eskimo!” @ Developer Technical Support @ Apple
let myEmail = "eskimo" + "1" + "@" + "apple.com"

ShareLink "save Image" action dismiss parent view
 
 
Q