UIAlertController закрыть на tvOS с помощью кнопки меню

Кто-нибудь знает, как включить UIAlertViewController, который был представлен для отклонения, нажав кнопку «Меню» в tvOS?

Приложение «Настройки» на Apple TV 4 имеет такое поведение, но по умолчанию оно не работает в моем приложении. Я использую следующий код для создания действий, которые может выполнять пользователь, но хотел бы позволить ему ничего не выбирать и вернуться, нажав кнопку «Меню» на пульте дистанционного управления.

UIAlertController* alert = [UIAlertController alertControllerWithTitle:@"Alert"
                           message:@"Please make a choice"
                           preferredStyle:UIAlertControllerStyleAlert];

UIAlertAction* action1 = [UIAlertAction actionWithTitle:@"Option 1" style:UIAlertActionStyleDefault handler:^(UIAlertAction * action) {}];
[alert addAction:action1];
UIAlertAction* action2 = [UIAlertAction actionWithTitle:@"Option 2" style:UIAlertActionStyleDefault handler:^(UIAlertAction * action) {}];
[alert addAction:action2];

[self presentViewController:alert animated:YES completion:nil];

Заранее спасибо.


person Benoit    schedule 24.11.2015    source источник


Ответы (3)


@ion: Ваш ответ привел меня к правильному ответу.

Вам действительно нужно добавить одно действие со стилем UIAlertActionStyleCancel, чтобы кнопка меню работала должным образом и закрывала UIAlertViewController. Чтобы это действие «Отмена» было скрыто от опций (без кнопки, как в приложении «Настройки»), просто установите его заголовок и обработчик на ноль:

[alert addAction:[UIAlertAction actionWithTitle:nil style:UIAlertActionStyleCancel handler:nil]];
person Benoit    schedule 03.12.2015
comment
Я также пытаюсь сделать то же самое и использовал приведенный выше код, но теперь кнопка меню не только отменяет мой контроллер предупреждений, но и отклоняет контроллер представления под ним. Какие-либо предложения? - person Mel; 30.12.2015

У вас должен быть хотя бы один UIAlertAction в контроллере стиля UIAlertActionStyleCancel, чтобы кнопка меню работала должным образом.

person ion    schedule 02.12.2015

В Свифте:

alertController.addAction(UIAlertAction(title: nil, style: .cancel, handler: nil))
person jakedunc    schedule 25.09.2017