Меню AirPlay неправильно отображается в портретной ориентации на iOS 6

Я использую AVPlayer и MKVolumeView для отображения собственного меню вывода AirPlay.

В iOS 6 меню вывода AirPlay кажется представленным в портретной ориентации независимо от ориентации строки состояния. В iOS 5 он следовал ориентации строки состояния.

Есть ли способ заставить его следовать строке состояния или хотя бы принудительно настроить ориентацию?


person Anton    schedule 06.11.2012    source источник
comment
Установите желаемую ориентацию в инспекторе атрибутов.   -  person PappaSmalls    schedule 06.11.2012


Ответы (2)


Нашел способ решить эту проблему. Просто переопределите метод showInView UIActionSheet, используя категорию. Затем установите представление в showInView с вашим представлением. Вероятно, это решит проблему. Это сработало для меня.

person m4n1c    schedule 04.02.2013
comment
Я предполагаю, что в iOS 5 с mpvolumeview у нас есть ориентируемый лист действий, но когда дело доходит до iOS 6, они изменили некоторые модификации листа действий для трансляции. Список действий, который появляется, когда мы нажимаем кнопку трансляции, называется «MPAudioVideoRoutingActionSheet». - person m4n1c; 04.02.2013
comment
Я думаю, это лучшее, что можно сделать, хотя это, безусловно, сопряжено с риском быть отвергнутым. Однако, по моему опыту, изменения в MPMoviePlayerController и его интерфейсе вызывают слепое пятно у группы проверки - обычно (для меня никогда) они не заботятся о таких решениях и одобряют их (поскольку они, скорее всего, не проверяли их должным образом). - person Till; 15.03.2013

Примечание. Следующее упускает суть и используется только для справки. Я обновлю этот ответ, как только получу надлежащую помощь от инженеров Apple по этому конкретному вопросу.

Мне повезло, я использовал следующий авантюрный шаблон;

  1. Создайте промежуточный viewController со всеми разрешенными ориентациями.
  2. Представление этого контроллера представления полностью прозрачно (UIColor clearColor - не альфа = 0,0f).
  3. Добавьте представление этого контроллера представления поверх текущего представления (addSubview).
  4. Представьте MPVolumeView из этого промежуточного viewController поверх его полностью прозрачного представления.

После отправки TSI чувак из Apple попросил меня отправить отчет об ошибке -> не повезло.

person Till    schedule 06.11.2012
comment
Спасибо за Ваш ответ. Я пробовал это, но это не имело значения. Вы заставили это работать? Что вы подразумеваете под представлением MPVolumeView? Я добавил MPVolumeView в представление контроллера представления. - person Anton; 06.11.2012
comment
@AntonHolmquist, ты прав. Я использовал этот шаблон в сочетании с другими элементами, которые должны были отображаться поверх MPMoviePlayerController. Пробуя именно то, о чем вы просите, я заметил, что мой подход не имеет никакого значения. Мне очень жаль, что я направил вас в этом бесполезном направлении. - person Till; 12.11.2012
comment
Это не проблема. Итак, вы нашли какое-либо другое решение? - person Anton; 12.11.2012
comment
Пока безуспешно — я проверил форумы Apple и нашел этот вопрос без ответа: devforums.apple.com/ message/745029 — теперь будет использовать один из моих TSI, чтобы получить ответ от Apple. - person Till; 12.11.2012
comment
@AntonHolmquist TSI используется, ожидая ответа от Apple -› будет держать вас в курсе. - person Till; 13.11.2012