Отключить стандартное меню аудио маршрута MPVolume для iOS

Я использую MPVolumeView, чтобы позволить пользователю контролировать свой предпочтительный аудио маршрут при использовании моего приложения.

Представление представлено этим кодом:

self.volumeView = [[MPVolumeView alloc] initWithFrame:self.view.frame];
self.volumeView.showsVolumeSlider = NO;
[self.view addSubview:self.volumeView];

Когда пользователь нажимает кнопку звукового маршрута, появляется меню с доступными опциями.

Проблема: экран, который показывает представление объема, возможно, должен быть скрыт из-за различных событий, которые обрабатывает мое приложение, и я хотел бы скрыть меню аудио маршрута одновременно (если оно в настоящее время представлено)

Мой вопрос: кто-нибудь знает, возможно ли вручную закрыть меню выбора аудио маршрута MPVolumeView, не нажимая кнопку отмены?

Спасибо!

1 ответ

На iOS 8 вы можете использовать приведенный ниже код, который использует приватный API

            NSArray *windows = [[UIApplication sharedApplication] windows];
    for (UIWindow *window in windows) {
        if ([NSStringFromClass([window class]) isEqualToString:@"_MPAVRoutingSheetSecureWindow"]) {
            UIView *view = [window.subviews firstObject];
            if ([NSStringFromClass([view class]) isEqualToString:@"MPAVRoutingSheet"]) {
                [view performSelector:@selector(dismiss)];
            }
        }
    }
Другие вопросы по тегам