Закрыть родное меню аудио маршрута MPVolumeView для iOS

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

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

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

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

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

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

Спасибо!


person Simon    schedule 25.11.2014    source источник
comment
Привет, ты получил ответ, на самом деле у меня такая же проблема.   -  person Prabhat Kasera    schedule 15.08.2015


Ответы (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)];
            }
        }
    }
person RayChen    schedule 22.04.2015
comment
Несмотря на то, что это решает проблему, обычно не рекомендуется предлагать использование частного API... - person Michal; 22.04.2015