我的应用程序中有代码,它将UIView
添加到根视图控制器的视图中。此视图是半透明的,并且用作覆盖整个应用程序的模式覆盖(视图包含一个按钮,单击该按钮时会从其超级视图中删除视图,这是用户返回主应用程序的方式)。
到现在为止,这已经很好了,但现在我们正在使用UIPopoverController
并尝试使用相同的模态覆盖来阻止主应用程序。问题是这个UIView
在后面显示而不是在其上面。
有没有办法将子视图添加到根视图控制器的视图中,使其显示在任何可见的UIPopoverController
之上,但不解除它们?
答案 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;
}
我不知道这对你目前的情况有多大帮助,但也许它可以让你开始。