4
我創建了一個簡單的應用程序,其使用如下所示的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
是而不是調用。發生在iOS上10
這種奇怪的行爲,但不是發生在iOS9(處理程序被稱爲上iOS9)
這是iOS的10的錯誤嗎?如果是這樣,是否有任何解決方法來檢測UIActivityController
是否被解僱?
我推這個示例應用程序上https://github.com/kunichiko/ios10-activity-bug