Blacked-out interface rotation when using second UIWindow with rootViewController

烂漫一生 提交于 2019-12-03 14:27:43

I will add another answer, because I have found a workaround that actually works. Set the window's background color, as well as the view controller's view's background color to a color with an alpha of 0. Do not use clearColor, but rather use something like greenColor] colorWithAlphaComponent:0.0]; It works.

According to an Apple engineer on the dev forums, this is expected due to the window adding a black background to avoid things behind it to be seen (i.e. behind the main window normally). I opened and issue with the Apple bug tracker, #15398141.

Nevertheless, I worked around the issue by hiding the window in willRotateToInterfaceOrientation:duration: and unhiding it in didRotateFromInterfaceOrientation:, which luckily is not a big deal in this case.

This is a known issue, and there are many radars open for it. Best solution so far for me is to add a view as a subview to the window, and manage rotation yourself. This works well.

Make window.opaque = No whose default value is YES. In my case it solved the problem.

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!