2014-09-25 31 views
0

我一直工作了2天,无法解决。我有一个全屏按钮,我这样显示在我的UIViewController中;UIWindow子视图无法在iOS 8上工作

_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

您是否尝试过Xcode 6中新的“调试视图层次结构”功能? – 2014-09-25 12:28:55

+0

是的,我试过了,不能在层次结构中看到我的按钮。 – 2014-09-26 10:45:23

回答

1

在iOS 8中,我发现了同样的问题。 事实证明,在一些屏幕上UIWindow有几个子视图,而不是一个和唯一的。 将我的视图添加到最后一个UIWindow子视图解决了这个问题,但我不确定是否应该改写我的整个导航。

无论如何,尝试修改你这样的代码:

[[[window subviews] objectAtIndex:[[window subviews] count]-1] addSubview:_tutorialButton]; 

UPD: 我最终的解决办法是不添加子视图UIWindows'子视图,但我的导航控制器的视图来代替。因此,你不需要猜测哪个UIWindow子视图是你的,如果有几个'em'

相关问题