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.

Другие вопросы по тегам