0

我有一个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;
}

视图只是不旋转...?

4

2 回答 2

0

据我所知,只有窗口的第一个子视图会获取旋转事件。您正在向窗口添加另一个视图(您的视图),因此需要自己处理传播旋转事件。

为您提供一些真正的快速帮助,只需查看以下实现:AGWindowView(自 2016 年起未维护)

于 2013-02-05T09:44:31.933 回答
0

你可以为你的 UIWindow 设置 rootController。例如:

fileprivate(set) var bottonOverlayWindow = UIWindow()

self.bottonOverlayWindow.rootViewController = self; 

// 'self' 将是您在其上添加 UIWindow 视图的 ViewController。所以每当你 ViewController 改变方向时,你的窗口视图也会改变它的方向。

如果您遇到任何问题,请告诉我。

于 2019-09-13T12:20:11.853 回答