使用菜单按钮在 tvOS 上关闭 UIAlertController

UIAlertController dismiss on tvOS with menu button

有谁知道如何通过单击 tvOS 上的 "Menu" 按钮来启用显示为关闭的 UIAlertViewController?

Apple TV 4 上的“设置”应用程序具有这种行为,但默认情况下它在我的应用程序中不起作用。我使用以下代码来创建用户可以执行的操作,但我想让他不要选择任何内容并通过按遥控器上的 "Menu" 按钮返回。

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];

提前致谢。

您必须在控制器中至少有一个 UIAlertActionStyleCancel 样式的 UIAlertAction 才能使菜单按钮按预期工作。

@ion:你的回答让我找到了正确的答案。

您确实需要添加一个样式为 UIAlertActionStyleCancel 的操作,以使菜单按钮按预期工作并退出 UIAlertViewController。 要从选项中隐藏此取消操作(没有按钮,就像在“设置”应用程序中一样),只需将其标题和处理程序设置为 nil:

[alert addAction:[UIAlertAction actionWithTitle:nil style:UIAlertActionStyleCancel handler:nil]];

在Swift中:

alertController.addAction(UIAlertAction(title: nil, style: .cancel, handler: nil))