Apple的文档只涉及基于UIDocumentBrowserViewController
的应用程序,这些应用程序希望支持同时打开多个文档。
我想启用此功能,以便用户可以轻松地在两个或多个文档之间复制/粘贴,而不必退出到文档浏览器,这在iOS上并不是一种流畅的体验。
除了对allowsPickingMultipleItems
属性的简短描述之外,我什么也找不到。
对于单个文档视图,Apple建议使用模式视图,但不赘述。
问题
答案 0 :(得分:2)
我是一个相对较新的iOS开发人员,因此请耐心等待。
以下对我有用:
URL
的输入,而另一个可以接受[URL]
的输入。然后,这些ViewController必须在屏幕上显示与URL相关的文档。
documentBrowser(_:, didPickDocumentURLs:)
中,检查传入了多少URL
,并显示上述ViewController之一(视情况而定)示例:
class DocumentBrowserViewController: UIDocumentBrowserViewController, UIDocumentBrowserViewControllerDelegate {
override func viewDidLoad() {
super.viewDidLoad()
delegate = self
allowsDocumentCreation = false
allowsPickingMultipleItems = true
// -snip-
}
// MARK: UIDocumentBrowserViewControllerDelegate
// -snip-
func documentBrowser(_ controller: UIDocumentBrowserViewController, didPickDocumentURLs documentURLs: [URL]) {
if documentURLs.count < 1 {
return
} else if documentURLs.count == 1 {
presentDocument(at: documentURLs[0])
} else {
presentDocuments(at: documentURLs)
}
}
// -snip-
// MARK: Document Presentation
func presentDocument(at documentURL: URL) {
// present one document
// example:
// let vc = SingleDocumentViewController()
// vc.documentURL = documentURL
// present(vc, animated: true, completion: nil)
}
func presentDocuments(at documentURLs: [URL] {
// present multiple documents
// example:
// let vc = MultipleDocumentViewController()
// vc.documentURLs = documentURLs
// present(vc, animated: true, completion: nil)
}
}
要回答您的其他问题:
一些警告:
注意:
documentBrowser(_:, didPickDocumentURLs:)
将重命名为documentBrowser(_: didPickDocumentsAt:)
in iOS 12