gpt4 book ai didi

uiviewcontroller - tvOS - 在推 View Controller 转换期间捕捉 MENU 按钮按下

转载 作者:行者123 更新时间:2023-12-04 07:22:40 24 4
gpt4 key购买 nike

我的 tvOS 应用程序中有一个 UIViewController,它只会出现几秒钟,并且需要完全可自定义的 MENU 按钮处理。我像这样创建它:

- (void)viewDidLoad
{
[super viewDidLoad];

// Add a tap gesture recognizer to handle MENU presses.
UITapGestureRecognizer *tapGestureRec = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(handleTap:)];
tapGestureRec.allowedPressTypes = @[@(UIPressTypeMenu)];
[self.view addGestureRecognizer:tapGestureRec];
}

- (void)handleTap:(UITapGestureRecognizer *)sender
{
// Code to process the MENU button is here.
}

我使用 pushViewController:animated: 显示 View Controller :
UIViewController *controller = [self.storyboard instantiateViewControllerWithIdentifier:identifier];
[self pushViewController:controller animated:isAnimated];

我发现,如果用户在屏幕开始出现时立即按下 MENU,而交叉淡入淡出过渡效果仍在显示,他们能够躲避 UITapGestureRecognizer 并返回到前一个屏幕,这不是故意的。他们还可以通过一遍又一遍地捣碎菜单来导致问题——最终他们会摆脱他们不应该做的事情。

我怎样才能确保 MENU 按下总是达到我的覆盖?有没有办法指定一个包含应用程序的 MENU 按钮处理程序并仍然使用 UINavigationController?

最佳答案

对我有用的解决方案是将 UITapGestureRecognizer 安装到 self.navigationController.view 上。 .常规 UIViewControllers 错过的任何点击最终都会被导航 Controller 的识别器捕获。如果你在你创建的每个 View Controller 上安装 UITapGestureRecognizers,唯一会通过裂缝进入导航 Controller 的点击是在过渡过程中发生的点击,完全忽略这些点击是安全的。

请注意,当您希望 MENU 返回主屏幕时,您需要暂时删除此点击识别器并让 tvOS 自行处理点击,因为我在我的代码中找不到干净的方法来退出到主屏幕(缺少 exit(0) )。

关于uiviewcontroller - tvOS - 在推 View Controller 转换期间捕捉 MENU 按钮按下,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35121143/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com