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

到现在为止,这种方法一直很好,但是现在我们使用UIPopoverController并尝试使用相同的模式覆盖来阻止主应用程序。问题在于此UIView显示在弹出框的后面,而不是在弹出框的顶部。

有什么方法可以将子视图添加到根视图控制器的视图中,使其出现在任何可见的UIPopoverController顶部,但不会将其关闭吗?

最佳答案

关于UIPopoverController的参考指出:


  “弹出式窗口内容在特殊类型的窗口中位于您现有内容的顶部。”


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

这是一个主意:

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

然后,将您的主viewController设置为弹出窗口的委托,它实际上显示UIPopoverController,并执行以下操作:

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


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

关于ios - 有什么办法可以将UIView放在UIPopoverController上方吗?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/10458390/

10-11 00:46