我已经工作了两天而无法解决。我有一个全屏按钮,我在我的UIViewController中显示如下;
_tutorialButton.frame = CGRectMake(0.0f, 0.0f, [UIScreen mainScreen].bounds.size.width, [UIScreen mainScreen].bounds.size.height);
UIWindow *window = [[UIApplication sharedApplication].windows objectAtIndex:0];
[[[window subviews] objectAtIndex:0] addSubview:_tutorialButton];
此代码完全符合我对iOS 7及早期操作系统的期望。但它在iOS 8上不起作用。我不想使用
_tutorialButton.layer.zPosition = MAXFLOAT;
因为这对我来说是一个肮脏的解决方案。另外我使用这种方法,我需要隐藏我的UITabBar和UINavigationBar。这是iOS 8的错误还是我做错了什么?
答案 0 :(得分:1)
在iOS 8中,我发现了同样的问题。 事实证明,在某些屏幕上,UIWindow有几个子视图而不是一个。 将我的视图添加到最后一个UIWindow子视图解决了这个问题,但我不确定是否应该重新修改整个导航。
无论如何,尝试修改你的代码:
[[[window subviews] objectAtIndex:[[window subviews] count]-1] addSubview:_tutorialButton];
<强> UPD:强> 我的最终解决方案是将子视图添加到UIWindows的子视图中,而不是添加到导航控制器的视图中。因此,你不必猜测哪个UIWindow子视图是你的,以防有几个'em