允许在下面呈现的 UIViewController 上的 UIViewController 上进行交互

Posted

技术标签:

【中文标题】允许在下面呈现的 UIViewController 上的 UIViewController 上进行交互【英文标题】:Allow interactivity on UIViewController below presented UIViewController 【发布时间】:2014-02-11 19:07:04 【问题描述】:

我正在呈现具有UIModalPresentationCustom 呈现风格的UIViewController,并且呈现的UIViewController 将其主视图的backgroundColor 设置为clearColor。我需要允许与下面的UIViewController 进行交互。这可能吗?

我这样做的原因是我有一张地图需要始终位于呈现的UINavigationController 下方,并且我需要允许与它进行交互。呈现的视图可能具有在其上方滚动的内容,那时我希望停止交互(默认情况下应该停止)。

【问题讨论】:

这是不可能的,因为这会导致太多的不连贯性。 :) 考虑其他一些接口。 (我记得当我第一次尝试您描述的界面时,我担心可能与“后面”视图控制器的视图交互,当事实证明这不是案例。) 是的,我开始同意了。太多的事情需要注意。我们设计了另一种方法来解决这个问题!干杯。 【参考方案1】:

你也许可以通过弄乱 hitTest 来做这样的事情,尽管我不会依赖它。

似乎带有“passthroughViews”的弹出窗口可能更好地满足您的目的。如果你不能处理箭头,你总是可以设置一个自定义的 UIPopoverBackgroundView。

【讨论】:

谢谢,我也考虑过弹出框,但我们确实需要它才能成为 UINavigationController 的外观。 您可以在弹出窗口中使用 UINavigationController,但我理解您的痛苦。也许只是使用视图控制器包含而不是展示。

以上是关于允许在下面呈现的 UIViewController 上的 UIViewController 上进行交互的主要内容,如果未能解决你的问题,请参考以下文章

UIViewController 由于另一个最近被解雇而没有被呈现

UIViewController 类的未知类型名称

从 UIViewController 画一条线

UIViewController 中动态大小的表格视图

iOS暗光模式不更新UIViewController

从另一个 UIViewController 呈现 UIViewController