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

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

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

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

【问题讨论】:

    标签: ios ipad uiview uipopovercontroller


    【解决方案1】:

    UIPopoverController 上的参考说明:

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

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

    这里有一个想法:

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

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

    - (void) popoverControllerShouldDismissPopover:(UIPopoverController*)popoverController
    {
        if(popoverController.contentViewController.yourProperty)
        {
            return YES;
        }
        return NO;
    }
    

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

    【讨论】:

    • 这对我目前的情况没有帮助,这是“搞砸”的。我想实现一个自制的 popover 解决方案(不会有这个问题),但这需要将我们所有的视图控制器转换为视图,而我的团队的其他成员不想这样做。跨度>
    猜你喜欢
    • 2017-02-03
    • 1970-01-01
    • 1970-01-01
    • 2018-07-03
    • 2018-10-14
    • 1970-01-01
    • 1970-01-01
    • 2012-03-12
    • 2019-09-08
    相关资源
    最近更新 更多