有没有办法将UIView置于UIPopoverController之上?

时间:2012-05-05 02:45:16

标签: ios ipad uiview uipopovercontroller

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

到现在为止,这已经很好了,但现在我们正在使用UIPopoverController并尝试使用相同的模态覆盖来阻止主应用程序。问题是这个UIView在后面显示而不是在其上面。

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

1 个答案:

答案 0 :(得分:1)

UIPopoverController上的引用声明:

  

“popover内容在特殊类型的窗口中叠加在现有内容之上。”

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

这是一个想法:

您可以将阻止UIView添加到UIPopOverController的contentViewController,并使用它在contentViewController上设置属性。

然后你设置你的主viewController,它实际上显示UIPopoverController,作为popover的委托,并做这样的事情:

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

我不知道这对你目前的情况有多大帮助,但也许它可以让你开始。