我正在尝试创建UIView,我需要在整个应用程序中看到它。
唯一的方法是,我该如何做到这一点,将addSubview添加到UIWindow *window = [[UIApplication sharedApplication].windows objectAtIndex:0]
。我正在AppDelegate
中执行此操作。到目前为止,一切都很好。
window = [UIApplication sharedApplication].keyWindow;
[[[window subviews] objectAtIndex:0] addSubview:myView];
这是左下角的一个小视图。
在这个视图中,我想播放视频,而你可以在后台做其他事情。
但当我推送另一个ViewController甚至更改rootViewController
时,它会消失,我需要再次添加它。
rootViewController
是objectAtIndex:0
还是更改rootViewController
,它会删除外翻?
我被尝试了,在它消失的任何地方读了它,但是大多数都是更好的解决方案!
换句话说,我怎样才能添加它而不会失去它呢?
答案 0 :(得分:0)
它是否消失或新视图被添加到其上?
通常,当前视图控制器将始终在窗口顶部显示自己的视图。
如果您要显示带有图像的背景视图,则默认情况下可以在所有屏幕中保留背景图像...您必须将其添加到窗口图层,
self.view.window.layer.contents = (id)[backgroundImage CGImage];
答案 1 :(得分:0)
我认为您无法创建一个浮动在应用中每个视图控制器顶部的视图。它违反了Apple的设计,因为视图和视图控制器应该起作用。
您可以将应用程序设置为单个视图控制器应用程序,该视图控制器具有容器视图大小的屏幕。然后,您可以使用嵌入segue将应用程序的“真实视图控制器树”嵌入到容器视图中。然后,您可以将浮动视图放在最顶层的视图控制器上,并获得所需的效果。
答案 2 :(得分:0)
创建一个新的UIWindow
并给它一个足够高windowLevel
(即UIWindowLevelStatusBar
应该做的伎俩)。然后添加您希望对窗口可见的视图,最后通过将hidden
属性设置为NO
使其可见。