2014-09-29 33 views
2

我使用UIActivityController和近日获悉,completionHandler上弃用iOS8上UIActivityViewController completionHandler更换

谁能解释这种变化,是使用completeionHandler一个不好的设计? 是否有另一种方法来实现这一功能?

对我来说知道何时关闭UIActivityViewController是至关重要的,因为我想在之后展示另一个弹出窗口,并且在iphone打开新弹出窗口而前一个窗口仍然打开时导致暗恋。 我想我可以在我的自定义活动中设置一个计时器,然后我打电话给activityDidFinish,假设1秒后打开一个弹出窗口是安全的,但这显然是错误的工作方式。

回答

1

this答案由tdevoy

你只需要使用新的处理程序UIActivityViewControllerCompletionWithItemsHandler

typedef void (^UIActivityViewControllerCompletionWithItemsHandler)(NSString *activityType, BOOL completed, NSArray *returnedItems, NSError *activityError); 
1

如果您使用自定义UIActivity,则可以将代码放入UIActivity activityDidFinish

沿着这些方向的另一种选择是创建您尝试执行的活动的子类并覆盖activityDidFinish方法,请拨打[super activityDidFinish],然后执行自定义操作。

不触及UIActivity的第三个选项就是创建UIActivityViewController的子类并覆盖viewWillDisappear方法,但是您需要一些逻辑来确定是否执行了活动或者用户是否只是取消活动。

相关问题