UIWindow子视图无法在iOS 8上运行

时间:2014-09-25 11:32:17

标签: uiview ios8

我已经工作了两天而无法解决。我有一个全屏按钮,我在我的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的错误还是我做错了什么?

1 个答案:

答案 0 :(得分:1)

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

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

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

<强> UPD: 我的最终解决方案是将子视图添加到UIWindows的子视图中,而不是添加到导航控制器的视图中。因此,你不必猜测哪个UIWindow子视图是你的,以防有几个'em

相关问题