2

我想在关键窗口上方添加一个视图,以便它可以显示在每个页面上。但是当改变方向时,视图不会相应地旋转。我认为这是在 ios6 之后导致的,其中苹果更改了旋转方法。所以我的问题是如何解决旋转问题,或者是否有其他简单的方法可以在每个页面上方显示视图。谢谢。

为尼克 C 更新:

我通过创建两个 UIWindow 对象来遵循您的解决方案。但是当旋转设备时,它会显示黑色背景和半透明的顶部窗口。旋转动画完成后,会显示原始窗口。我认为这对用户体验不利。您对如何解决这个问题有任何想法吗?这是我的代码:

    self.topWindow = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
    self.watermarkViewController = [[WatermarkViewController alloc] init];
    self.topWindow.rootViewController = self.watermarkViewController;
    self.topWindow.windowLevel = UIWindowLevelAlert;
    [self.topWindow makeKeyAndVisible];
    self.topWindow.userInteractionEnabled = NO;

    self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
    // Override point for customization after application launch.
    self.viewController = [[ContentViewController alloc] initWithNibName:@"ContentViewController" bundle:nil];
    self.window.rootViewController = self.viewController;
    [self.window makeKeyAndVisible];
4

2 回答 2

2

我认为您的问题出在 iPad 上,您可以像这样将子视图添加到窗口中。

 [[[[[UIApplication sharedApplication].windows objectAtIndex:0] subviews] objectAtIndex:0] addSubview:self.myView];

您可以从这里获得更多信息

于 2013-03-15T04:56:18.923 回答
1

初始化一个 UIWindow 并将 windowLevel 设置为 UIWindowLevelAlert 创建一个 UIViewController 子类来保存您的视图,使其成为窗口的 rootViewController,并覆盖 -[UIViewController supportedInterfaceOrientations] 方法

于 2013-03-15T06:52:51.250 回答