UIDocumentInteractionController: «Открыто», видимое на iPhone, но не на iPad – почему?

Для тестирования я написал два приложения:

  • Сначала воспроизводится файл MP3 с помощью UIDocumentInteractionController
  • Второй ничего не делает, кроме регистров для типа файла " public.mp3 "

Если я развожу приложения на iPhone Simulator, мое приложение для MP3-плеера отобразит кнопку « Open in» MP3Test ». Однако, если я развертываю на iPad Simulator, нет кнопки и нет меню «Открыть в».

Это было протестировано с iOS5.

Может ли кто-нибудь объяснить, является ли это ошибкой или какой-либо особенностью и какова причина этого?

3 Solutions collect form web for “UIDocumentInteractionController: «Открыто», видимое на iPhone, но не на iPad – почему?”

Зависит от того, откуда вы его представляете.

Если вы представляете его где-то посередине экрана или ниже, просто представляйте из кадра объекта, из которого вы представляете.

если это находится на панели навигации, попробуйте следующее:

 NSString *fileToOpen = [[NSBundle mainBundle] pathForResource:@"License" ofType:@"pdf"]; UIDocumentInteractionController *controller = [UIDocumentInteractionController interactionControllerWithURL:[NSURL fileURLWithPath:fileToOpen]]; controller.delegate = self; CGRect navRect = self.navigationController.navigationBar.frame; navRect.size = CGSizeMake(1500.0f, 40.0f); [controller presentOptionsMenuFromRect:navRect inView:self.view animated:YES]; 

IPad имеет близость к popovers (см. UIPopover ), почему он представляет в них UIActionSheet . Если вы столкнулись с аналогичной проблемой, у меня был UIDocumentInteractionController, который появился из UIBarButtonItem (в результате получился UIPopover-презентация), а не из самого представления (что отлично работало на iPhone):

1) Сохраните ссылку на кнопку действия (у меня есть моя в моей навигационной панели).

2) Используйте PresentOpenInMenu, используя ссылку кнопки действия, а не ссылку «Просмотр», в результате получив UIPopover-презентацию.

Обратите внимание, что это изменение не влияет на приложение iPhone – оно ведет себя раньше, т.е. открывает OpenInMenu в нижней части экрана так же, как и если бы вы использовали ссылку View для ее представления.

Я надеюсь, что это тоже полезно для вас.

На iPad UIDocumentInteractionController появляется как Pop Up Попробуйте что-то вроде этого

 -(void)shareClick:(UIButton*)sender { /*some code*/ CGRect rectFor appearing = [sender.superview convertRect:sender.frame toView:self.view]; [interactionController presentOptionsMenuFromRect:rect inView:self.view animated:YES]; } 
  • iOS - открыть фотографию из фотоальбома в моем приложении
  • Взаимодействие с Mail, хотя UIDocumentInteractionController
  • UIDocumentInteractionController не открывает приложение (didEndSendingToApplication: никогда не вызывал)
  • willBeginSendingToApplication не вызывается при открытии EverNote или любом другом расширении
  • UIDocumentInteractionControllerDelegate EXC_BAD_ACCESS в Swift
  • UIDocumentInteractionController, не отображающий параметр печати
  • Как добавить событие в родной календарь IOS
  • Цель C: загрузить PDF и открыть в iBooks
  • UIDocumentInteractionController удаляет меню действий
  • загружать или передавать видео на Youtube из моего приложения SDK для iOS
  • Файл UIDocumentInteractionController не подключен к Mail, если есть другое приложение, поддерживающее тип файла
  • Interesting Posts

    Не удалось создать экземпляр контроллера представления по умолчанию для UIMainStoryboardFile 'Main'

    Местоположение архива Xcodebuild

    Приложение отклонено из-за «неправильной IDFA», в то время как я не пользуюсь какой-либо рекламной услугой

    iOS – Разъемы интерфейсных построек не инициализированы

    Как сгенерировать PDF с использованием NSData или использовать байты данных цели c?

    Отправить UIImage в LocalwebServer с помощью GCDWebServer

    Проблема с зависанием / кликом iOS 7 – в некоторых случаях не запускается клик

    Почему NSInvocation

    Слияние платного приложения и бесплатного приложения с покупкой приложения

    Swift Firebase image 0 байт

    iOS Являются ли методы, вызванные делегатами и наблюдателями, выполняемыми в основном потоке?

    Как остановить распознавание речи (диктовку) в Apple Watch, когда пользователь перестает говорить?

    uialertview, вызываемое более одного раза

    MPMoviePlayerController останавливает воспроизведение видео после 5 секунд

    swift 3 фильтр-матрица словарей по строковым значениям ключа в словаре

    PhoneC: Разработка iOS проста с помощью XCode, Swift3, UITableView, cocatouch, давайте создадим приложения для iPhone, iPad и Macbook.