UIDocumentMenuViewController падает на iPad, но не на iPhone
Представляя 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 Запоминать [2994:977408] поведение UICollectionViewFlowLayout не определено, поскольку: 2016-06-07 09:45:45.260 Запоминать [2994:977408] ширина элемента должна быть меньше ширина UICollectionView минус значения вставок левого и правого разделов, минус значения вставок левого и правого содержимого. 2016-06-07 09:45:45.261 Memorize[2994:977408] Соответствующим экземпляром UICollectionViewFlowLayout является <_UIAlertControllerCollectionViewFlowLayout: 0x1668e6e0>, и он прикреплен к; animations = { bounds.origin=; bounds.size=; положение =; }; слой =; contentOffset: {0, 0}; contentSize: {0, 0}> макет представления коллекции: <_UIAlertControllerCollectionViewFlowLayout: 0x1668e6e0>. 2016-06-07 09: 45: 45.262 Memorize[2994:977408] Создайте символическую точку останова в UICollectionViewFlowLayoutBreakForInvalidSizes, чтобы перехватить это в отладчике.
Что я не понимаю, почему сообщение об ошибке ссылается collectionView
? Я вообще не использую collectionView. Может быть UIDocumentMenuViewController
это как внутренний компонент?
2 ответа
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)
У меня такая же проблема. Я установил sourceView = self.view, и мне пришлось сделать sourceRect = theButton.frame.