我有一个VC"A"模式提供VC"B".B表示UIDocumentMenuViewController
该UIDocumentMenuDelegate协议在B中实现.
只要documentMenuWasCancelled(_ documentMenu:)或者documentMenu(_:didPickDocumentPicker:)被称为dismiss(animated:completion:)B的被调用,我不知道为什么.
这是我的代码
func presentDocumentPicker() {
let documentTypes = [
kUTTypeCompositeContent as String,
kUTTypePDF as String,
"com.microsoft.word.doc",
"vnd.openxmlformats-officedocument.wordprocessingml.document"
]
let documentMenuViewController = UIDocumentMenuViewController(documentTypes: documentTypes, in: .import)
documentMenuViewController.delegate = self
present(documentMenuViewController, animated: true, completion: nil)
}
// MARK: - Document Menu View Controller Delegate
func documentMenu(_ documentMenu: UIDocumentMenuViewController, didPickDocumentPicker documentPicker: UIDocumentPickerViewController) {
print("did pick")
}
func documentPickerWasCancelled(_ controller: UIDocumentPickerViewController) {
print("was cancelled")
}
Run Code Online (Sandbox Code Playgroud)
如您所见,我在实现的委托函数中什么都不做.B仍然被解雇了.我不明白.
uiviewcontroller presentmodalviewcontroller ios swift uidocumentmenuvc
我需要打开UIDocumentPickerViewController它应该允许用户选择所有类型的文件.ie.(.pdf,.doc)文件我用的UIDocumentPickerViewController方法.我的代码:
UIDocumentPickerDelegate, UIDocumentMenuDelegate 在我的班级宣言中
//上传文件
func OpenFile(){
let importMenu = UIDocumentMenuViewController(documentTypes: [String(kUTTypePNG),String(kUTTypeImage)], in: .import)
importMenu.delegate = self
importMenu.modalPresentationStyle = .fullScreen
self.present(importMenu, animated: true, completion: nil)
}
@available(iOS 8.0, *)
public func documentPicker(_ controller: UIDocumentPickerViewController, didPickDocumentAt url: URL) {
let cico = url as URL
print("The Url is : \(cico)")
do {
let weatherData = try NSData(contentsOf: cico, options: NSData.ReadingOptions())
print(weatherData)
let activityItems = [weatherData]
let activityController = UIActivityViewController(activityItems: activityItems, applicationActivities: nil)
if UI_USER_INTERFACE_IDIOM() == .phone { …Run Code Online (Sandbox Code Playgroud) 呈现一个UIDocumentMenuViewController能够将文件加载到应用中的功能。在iPhone上可以使用,但在iPad上则不能。使用iOS9。知道有什么问题吗?
dmvc = UIDocumentMenuViewController(documentTypes: ["public.data"], inMode: .Import)
dmvc!.delegate = self
dmvc!.popoverPresentationController?.sourceView = addSongButton
self.presentViewController(dmvc!, animated: true, completion: nil)
Run Code Online (Sandbox Code Playgroud)
2016-06-07 09:45:45.256 Memorise [2994:977408]未定义UICollectionViewFlowLayout的行为,因为:2016-06-07 09:45:45.260 Memorise [2994:977408]项目宽度必须小于UICollectionView的宽度减去该部分插入的左右值,减去内容插入的左右值。2016-06-07 09:45:45.261备忘录[2994:977408]相关的UICollectionViewFlowLayout实例为<_UIAlertControllerCollectionViewViewLayout:0x1668e6e0>,并将其附加到; 动画= {bounds.origin =; bounds.size =; position =; }; 层=; contentOffset:{0,0}; contentSize:{0,0}>集合视图布局:<_UIAlertControllerCollectionViewFlowLayout:0x1668e6e0>。2016-06-07 09:45:45.262记忆[2994:
我不明白为什么错误消息指的是collectionView什么?我根本不使用collectionView。也许UIDocumentMenuViewController将其作为内部组件?