1

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

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

有没有办法将子视图添加到根视图控制器的视图中,使其出现在任何可见UIPopoverController的顶部,但不关闭它们?

4

1 回答 1

1

UIPopoverController 上的参考说明:

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

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

这是一个想法:

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

然后你设置你的主视图控制器,它实际上显示 UIPopoverController,作为弹出窗口的委托,并执行以下操作:

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

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

于 2012-05-05T08:32:25.040 回答