2014-09-29 79 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方法,但是您需要一些邏輯來確定是否執行了活動或者用戶是否只是取消活動。

相關問題