我希望在整个应用程序上显示一个窗口(无论前面/活动的视图控制器是什么)。与Songza的相似(如下图所示)。我可以在AppDelegate中做这样的事情吗?如果不是,在哪里?此外,做这样的事情的最佳方式是什么(不推新视图,而是对应用程序的当前状态进行某种覆盖?
答案 0 :(得分:0)
您有很多选择,最简单的解决方案是使用presentViewController:animated:completion:
。
或者,您可以创建一个包含其余视图的容器视图,并在您的函数中包含一个显示窗口视图的函数,只需使窗口视图可见并调用[containerView bringToSubviewFront:windowView];
另一种选择是遍历app委托中的窗口并将视图添加到正确的窗口(SVProgressHUD执行此操作):
NSEnumerator *frontToBackWindows = [[[UIApplication sharedApplication]windows]reverseObjectEnumerator];
for (UIWindow *window in frontToBackWindows)
if (window.windowLevel == UIWindowLevelNormal)
{
[window addSubview:self.overlayView];
break;
}