有没有办法将 UIView 放在 UIPopoverController 上方?

Posted

技术标签:

【中文标题】有没有办法将 UIView 放在 UIPopoverController 上方?【英文标题】:Is there any way to place a UIView above a UIPopoverController? 【发布时间】:2012-05-05 02:45:16 【问题描述】:

我的应用程序中有代码将UIView 添加到根视图控制器的视图中。此视图是半透明的,并用作覆盖整个应用程序的模态覆盖(该视图包含一个按钮,当单击该按钮时,会从其父视图中删除该视图,这是用户返回主应用程序的方式)。

到目前为止,这一切正常,但现在我们正在使用UIPopoverControllers 并尝试使用相同的模态覆盖来阻止主应用程序。问题是这个UIView 显示在弹出框的后面,而不是在它的顶部。

有没有办法将子视图添加到根视图控制器的视图中,使其显示在任何可见的UIPopoverControllers 之上,但不会关闭它们?

【问题讨论】:

【参考方案1】:

UIPopoverController 上的参考说明:

“弹出框内容以一种特殊类型的窗口叠加在现有内容之上。”

子视图数组的 NSLogging 显示,该视图未添加到显示它的 viewController 的视图层次结构中。从我的角度来看,您尝试做的事情是不可能的。

这里有一个想法:

你可以将你的阻塞 UIView 添加到 UIPopOverController 的 contentViewController 并使用它来设置 contentViewController 的属性。

然后您将实际显示 UIPopoverController 的主视图控制器设置为弹出框的委托,并执行以下操作:

- (void) popoverControllerShouldDismissPopover:(UIPopoverController*)popoverController

    if(popoverController.contentViewController.yourProperty)
    
        return YES;
    
    return NO;

我不知道这对您目前的情况有多大帮助,但也许它可以帮助您入门。

【讨论】:

这对我目前的情况没有帮助,这是“搞砸”的。我想实现一个自制的 popover 解决方案(不会有这个问题),但这需要将我们所有的视图控制器转换为视图,而我的团队的其他成员不想这样做。跨度>

以上是关于有没有办法将 UIView 放在 UIPopoverController 上方?的主要内容,如果未能解决你的问题,请参考以下文章

将 AVPlayerViewController 放在 UIView 中

如何快速将一半的集合视图单元格放在 UIView 上方? [关闭]

有没有办法将 UIView 嵌入到 UIScrollview 中而不会丢失 iOS 中的子视图约束?

没有工具栏或导航栏的 UiBarButtonItem

有没有办法从未完成的 UIView 动画中获取位置(或中心)状态?

如何在容器(UIView)内居中对齐 2 个 UIView,而不将它们放在 UIView 内