触摸导航栏时关闭 PopOver 屏幕

Posted

技术标签:

【中文标题】触摸导航栏时关闭 PopOver 屏幕【英文标题】:Dismiss UIPopOverScreen when touching NavigationBar 【发布时间】:2011-10-14 21:54:39 【问题描述】:

我有这个 UIPopOverScreen,当我按下 NavigationBar 按钮时会显示。 每当我触摸弹出屏幕之外的任何东西时,我都想解决这个问题。 它部分有效,但在触摸调用弹出屏幕的 VC 中内置的导航栏时它不会关闭。

我尝试了几种方法让它消失,但它还没有奏效。 我设置时获得的最佳结果:

self.popOverController.passthroughViews = nil;

它按我的意愿工作,但只需设置此选项,您必须按两次导航栏才能使其再次响应。

我很想听听您对清洁解决方案的看法。

【问题讨论】:

奇怪。我遇到了同样的问题,并且在呈现弹出框后立即将 passthroughViews 设置为 nil 对我来说非常有效。我没有看到您提到的两次触摸导航栏的行为。也许你的代码中的其他东西导致了这种行为 【参考方案1】:

添加一个 UITapGestureRecognizer 来对导航栏上的点击做出反应怎么样?保存对活动 Popover 的引用,并在导航栏收到点击时调用方法将其关闭。

【讨论】:

这正是我所寻求的。感谢您提醒我这一点!

以上是关于触摸导航栏时关闭 PopOver 屏幕的主要内容,如果未能解决你的问题,请参考以下文章

单击底部导航栏时关闭 Flutter 抽屉

打开搜索栏时导航栏隐藏

当我点击导航栏时,来自栏按钮的 ios 操作表不会关闭

在 UINavigationController 中隐藏导航栏时不向后滑动

我在屏幕上放置了一个带有自动布局的 UILabel,但是当我隐藏导航栏时,它会导致标签“抽搐”一秒钟 [重复]

切换侧边栏时如何在导航栏中移动/动画文本值