当我在iPad上通过URL共享文件时,控制台出现以下错误信息:
[ShareSheet] Failed to request default share mode for fileURL:...
共享完成处理程序中没有报告错误。它在iPhone和iPad的分屏视图中都能正常工作。
代码如下:
let avc = UIActivityViewController(activityItems: imageToShare, applicationActivities: nil)
avc.popoverPresentationController?.sourceView = self.view
let h: UIActivityViewController.CompletionWithItemsHandler = { [weak self] (type: UIActivity.ActivityType?, completed: Bool, modifiedItems: [Any]?, error: Error?) -> Void in
self?._handleShareResponse(completed: completed, error: error)
}
avc.completionWithItemsHandler = h
self.present(avc, animated: true, completion: nil)
我希望它能在全屏模式和分屏模式下工作。
问题实际上不在于对文件的访问,正如错误消息所导致的那样。共享弹出窗口的视图锚必须在iPad上正确设置。
所以定义锚的行应该是这样的:(我使用了一个导航栏和一个barButtonItem。)
avc.popoverPresentationController?.barButtonItem = barButtonItem
也许这对别人有帮助,尤其是错误信息是非常没有帮助的。