UIActivityViewController 调用然后关闭后如何执行操作

How to perform action after UIActivityViewController called and then closed

我无法理解调用 UIActivityViewController 后如何执行操作。 例如,当我使用以下代码保存图像时:

let image = UIGraphicsGetImageFromCurrentImageContext()
UIGraphicsEndImageContext()
let activity = UIActivityViewController(activityItems: [image], applicationActivities: nil)
presentViewController(activity, animated: true, completion: nil)

用户收到新的 window,可以在某处保存图像。成功保存图像后,我想执行一些操作(例如跳转到根视图控制器)。但我不知道如何跟踪此 UIActivityViewController 已关闭。如果我在此块之后编写代码,则不会发生任何事情,据我所知,因为此代码是在 activity VC 中实现的,而不是在原始 VC.

中实现的

我认为 viewWillDisappear 会帮助我,但它跟踪原始 VC,从我调用 activity VC 的地方我不知道如何我可以跟踪 activity VC 吗?同时,即使我有能力跟踪这个事件,仍然存在一个问题:如何区分保存成功和取消?

您可以使用 completionHadler,在这种情况下:

activity.completionWithItemsHandler = { activity, success, items, error in
    print("activity: \(activity), success: \(success), items: \(items), error: \(error)")
}