5

呈现一个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)

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 Memorise[2994:977408] 相关的 UICollectionViewFlowLayout 实例是 <_UIAlertControllerCollectionViewFlowLayout: 0x1668e6e0>,它附加到;动画 = { bounds.origin=; bounds.size=; 位置=; }; 层 = ; 内容偏移:{0, 0}; contentSize:{0, 0}> 集合视图布局:<_UIAlertControllerCollectionViewFlowLayout:0x1668e6e0>。2016-06-07 09:45:45.262 记忆[2994:

我不明白为什么错误消息指的是collectionView?我根本不使用collectionView。也许UIDocumentMenuViewController它作为内部组件?

4

2 回答 2

7

iPad 有一些关于 ActionSheets 及其取消按钮的特殊规则,这通常取决于您从哪里显示 ActionSheets,因此您可以通过以下方式解决崩溃问题:

     let importMenu = UIDocumentMenuViewController(documentTypes: [kUTTypeHTML as String ], in: .import)
    importMenu.delegate = self
    importMenu.modalPresentationStyle = .popover
    importMenu.popoverPresentationController?.sourceView = self.view
    self.present(importMenu, animated: true, completion: nil)
于 2016-12-27T08:25:16.000 回答
0

我有同样的问题。我设置了sourceView = self.view,并且不得不做一个sourceRect = theButton.frame。

于 2016-07-04T17:44:37.987 回答