(iOS 7.0.3,Xcode 5.0.1)
我的应用中有第二个UIWindow用于在状态栏上方显示自定义放大镜。但是,一旦我设置了这个窗口的rootViewController(用于界面旋转和其他一些东西),主窗口在界面旋转动画期间变黑。
要重现:创建单视图iOS应用程序并将以下内容添加到主UIViewController。
// To @interface:
@property (nonatomic, strong) UIWindow *secondWindow;
// In viewDidLoad:
self.secondWindow = [[UIWindow alloc] initWithFrame:[UIScreen mainScreen].bounds];
self.secondWindow.rootViewController = [[UIViewController alloc] initWithNibName:nil bundle:nil];
self.secondWindow.hidden = NO;
任何帮助表示感谢。
答案 0 :(得分:6)
我将添加另一个答案,因为我找到了一个实际可行的解决方法。将窗口的背景颜色以及视图控制器视图的背景颜色设置为alpha为0的颜色。不要使用clearColor
,而应使用greenColor] colorWithAlphaComponent:0.0];
之类的颜色。
答案 1 :(得分:1)
根据开发论坛上的Apple工程师的说法,这是预期的,因为窗口添加了黑色背景以避免其背后的东西被看到(即通常在主窗口后面)。我打开并发布了Apple bug追踪器,#15398141。
尽管如此,我通过将窗口隐藏在willRotateToInterfaceOrientation:duration:
中并将其取消隐藏在didRotateFromInterfaceOrientation:
中解决了这个问题,在这种情况下,幸运的是这不是什么大问题。
答案 2 :(得分:1)
这是一个已知问题,有很多雷达可供选择。到目前为止,对我来说最好的解决方案是将视图作为子视图添加到窗口,并自己管理轮换。这很好用。
答案 3 :(得分:0)
使window.opaque = No
的默认值为YES。在我的情况下,它解决了这个问题。