我创建了一个使用UIActivityViewController
的简单应用程序,如下所示。
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
被解雇?
答案 0 :(得分:6)
我有类似的问题。在我的情况下,我注意到没有调用完成处理程序,因为UIActivityController已被解除并取消分配。我所做的只是添加一个属性来保存一个强引用并将其设置为零。然后正确调用完成处理程序。