我有一个基于tabBar
的应用程序,想要在整个屏幕上呈现一些自定义视图(而不是模态视图),我这样做:
[self.view.window addSubview:self.myViewController.view];
我这样做的原因是因为这种方式视图位于UITabBar
之上。
无论如何,视图很好地呈现,它像我想要的那样覆盖整个屏幕。但有一个问题。当我旋转设备时,此顶视图不会旋转,但下面的视图会旋转。
我在iOS5
和iOS6
上测试过没有运气。还将此代码放在委托中:
- (NSUInteger)application:(UIApplication *)application supportedInterfaceOrientationsForWindow:(UIWindow *)window
{
return UIInterfaceOrientationMaskAll;
}
类似的代码在myViewController的视图中:
- (NSUInteger)supportedInterfaceOrientations
{
return UIInterfaceOrientationMaskAll;
}
视图只是不旋转......?
答案 0 :(得分:0)
据我所知,只有窗口的第一个子视图才能获得旋转事件。您正在向窗口添加另一个视图(您的视图),因此需要自己处理传播旋转事件。
为您提供一些非常快捷的帮助,请查看以下实施:AGWindowView(2016年未维护)
答案 1 :(得分:0)
您可以为UIWindow设置rootController。 例如:
fileprivate(set) var bottonOverlayWindow = UIWindow()
self.bottonOverlayWindow.rootViewController = self;
//'self'将在其上添加UIWindow视图的ViewController。因此,每当ViewController更改方向时,窗口视图也会更改其方向。
让我知道您是否遇到任何问题。