Я создал простое приложение, которое использует UIActivityViewController
, как показано ниже.UIActivityViewController.completionWithItemsHandler не вызывается в iOS 10.0, когда я выбираю меню «Печать» и отменяю его
let text = "Test Text"
let printData = UISimpleTextPrintFormatter(text: text)
let vc = UIActivityViewController(activityItems: [text, printData], applicationActivities: nil)
vc.completionWithItemsHandler = { (type,completed,items,error) in
print("completed. type=\(type) completed=\(completed) items=\(items) error=\(error)")
}
vc.modalPresentationStyle = .popover
vc.popoverPresentationController?.sourceView = self.openActivityButton
vc.popoverPresentationController?.sourceRect = self.openActivityButton.bounds
vc.popoverPresentationController?.permittedArrowDirections = .up
vc.popoverPresentationController?.delegate = self
self.present(vc, animated: true) {() in
}
и я запускаю это приложение на iOS 10 (Xcode 8.0 beta 6).
- Когда я закрываю диалоговое окно активности, вызывается
completionWithItemsHandler
. - Когда я выбираю операцию «Копировать», вызывается
completionWithItemsHandler
. - Когда я выбираю действие «Почта» и отменяю его, вызывается
completionWithItemsHandler
. - Но, когда я выбираю «Печать» деятельность и отменить ее,
completionWithItemsHandler
is не.
Это странное поведение произошло прошивки 10, но не произошло iOS9 (обработчик был вызван iOS9)
ли ошибка этого IOS 10-ой? Если да, существуют ли какие-либо обходные пути для обнаружения UIActivityController
?
Я оттолкнул этот пример приложения на https://github.com/kunichiko/ios10-activity-bug