Post

Replies

Boosts

Views

Activity

Reply to Sharelink dismisses Parent View
Here's a sharelinkDropin for those who needs it. The following would not dismiss the presenting view when save to photos. // // SharelinkDropin.swift // import SwiftUI struct SharelinkDropin<Label: View>: View { let item: URL @ViewBuilder let label: Label @State var isPresented: Bool = false var body: some View { Button { self.isPresented.toggle() } label: { self.label } .sheet(isPresented: self.$isPresented, content: { ActivityViewController(activityItems: [self.item]) }) } } fileprivate struct ActivityViewController: UIViewControllerRepresentable { var activityItems: [Any] var applicationActivities: [UIActivity]? = nil func makeUIViewController(context: UIViewControllerRepresentableContext<ActivityViewController>) -> UIActivityViewController { let controller = UIActivityViewController(activityItems: activityItems, applicationActivities: applicationActivities) return controller } func updateUIViewController(_ uiViewController: UIActivityViewController, context: UIViewControllerRepresentableContext<ActivityViewController>) {} } #Preview { SharelinkDropin(item: URL.placeholderIcon, label: { Text("Share") }) }
Topic: UI Frameworks SubTopic: SwiftUI Tags:
3w
Reply to SwiftData ModelContext Fetch Crashing
let id = model.persistentModelID let descriptor = FetchDescriptor<cache>( predicate: #Predicate { $0.cacheOf.persistentModelID == id } // predicate: #Predicate { $0.cacheOf.id == id } or this ) let result = (try? self.modelContext.fetch(descriptor) // 💥 crash here! .first) return result Some update on this! So turns out, I was fetching a model that was just created. The system can't find the model. I guess this was a cache miss in swiftData?! To Fix This: In your modelActor try? self.modelContext.save() basically, you want the modelContext to write into disk to create the persistentModelID Good luck!
Nov ’24
Reply to SwiftData ModelContext Fetch Crashing
It seems to crash with any SwiftData related id, but it's fine when just using the primitive values let id = model.persistentModelID let descriptor = FetchDescriptor<cache>( predicate: #Predicate { $0.cacheOf.persistentModelID == id } // predicate: #Predicate { $0.cacheOf.id == id } or this ) let result = (try? self.modelContext.fetch(descriptor) // 💥 crash here! .first) return result
Sep ’24