【发布时间】:2023-02-01 10:02:36
【问题描述】:
【问题讨论】:
-
您是否尝试过在
ShareLink视图上添加onDisappear { }? -
@user1046037 这是一个很好的猜测。但是 onDisappear 实际上会在按下 ShareLink 后被调用。它与工作表消失与否无关。我猜 Apple 需要改进这里的逻辑。
-
你能发布一些代码吗,总是发布最少的代码,以便其他人在同一页面上
【问题讨论】:
ShareLink 视图上添加 onDisappear { }?
我也在为此苦苦挣扎。据我所知,ShareLink 还没有办法在关闭时运行代码。对我来说效果很好的是为 SwiftUI 改编 UIActivityViewController,然后在工作表中呈现共享视图。
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>) {}
}
用法:
Button(action: {
presentShareSheet = true
}) {
Text("Share Link")
}
.sheet(isPresented: $presentShareSheet, onDismiss: {
// Code to run on dismiss
}) {
ActivityViewController(activityItems: ["Check out this link!", URL(string: "https://www.google.com")!])
}
【讨论】: