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)")
}
我无法理解调用 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)")
}