我正在使用UIActivityController,最近我了解到completionHandler在ios8上被废弃了
有人能解释一下这个变化吗,使用completeionHandler是一个糟糕的设计吗?还有其他方法来实现这个功能吗?
对我来说,知道UIActivityViewController何时关闭至关重要,因为我想在iphone之后显示另一个弹出窗口,在iphone中打开一个新的弹出窗口,而之前的弹出仍然是打开的,结果会导致拥挤。我想我可以在调用activityDidFinish之前在我的自定义活动中设置一个定时器,并假设1秒后打开一个弹出窗口是安全的,但这显然是错误的工作方式。
发布于 2014-09-30 07:53:18
Se this tdevoy的答案
只需使用新的处理程序UIActivityViewControllerCompletionWithItemsHandler即可。
typedef void (^UIActivityViewControllerCompletionWithItemsHandler)(NSString *activityType, BOOL completed, NSArray *returnedItems, NSError *activityError);发布于 2014-09-29 13:05:00
如果使用的是自定义UIActivity,则只需将代码放在UIActivity activityDidFinish中即可。
沿着这些路线的另一个选项是创建要执行的活动的子类,并覆盖activityDidFinish方法,调用[super activityDidFinish],然后执行自定义操作。
第三个(更棘手的)选项(不接触UIActivity )是创建一个UIActivityViewController子类并覆盖viewWillDisappear方法,但是您需要一些逻辑来确定是否执行了某个活动,或者用户是否只是取消了该活动。
https://stackoverflow.com/questions/26098724
复制相似问题