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

16

我不知道如何在调用UIActivityViewController之后执行操作。 例如,当我使用以下代码保存图像时:

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

用户收到一个新窗口,可以保存图像。当图像成功保存后,我想执行一些操作(例如跳转到根视图控制器)。但我无法找到如何跟踪此UIActivityViewController已关闭的方法。如果我在此块之后编写代码,则不会发生任何事情,因为我理解的是,此代码是在活动VC中实现的,而不是在原始VC中。

我认为viewWillDisappear可以帮助我,但它跟踪的是我调用活动VC的原始VC,并且我无法找到如何跟踪活动VC的方法。同时,即使我有能力跟踪此事件,仍然存在一个问题:如何区分成功保存和取消?

1个回答

38

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

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

谢谢!我的问题得到了简单的解决方案! - Denis Blinov
很高兴你觉得它有用! :) - PabloLerma
很棒的解决方案,但不幸的是它不能用于 Messenger 分享。 - KlimczakM

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接