1

因此,我正在我的 iOS 应用程序中创建并显示一个自定义窗口,因为我正在编写一个动态警报视图,它的功能也类似于咆哮/吐司警报。它在 ios6 中运行得非常好(希望我可以开源这个宝贝,你们都可以看看)

但无论如何,当我在 ios5 中运行它时,我的警报所在的窗口似乎并没有随着设备/模拟器旋转。无论如何,我的自定义窗口都保持纵向模式。

UIWindow 只是一个 UIView 子类,所以没有很好的“shouldRotate”委托方法。

我对为什么在 ios5 而不是 6 中发生这种情况感到有点困惑。任何帮助将不胜感激^_^

4

2 回答 2

1

我的窗口有一个 rootviewcontroller,我完全忘记了。我只需要实施

- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation{
    return YES;
}

让它工作。

:-D

于 2012-11-02T17:30:20.153 回答
0

通常不建议两个UIWindow在一个 iOS 应用程序中使用多个实例。这样做的唯一正当理由是支持外部屏幕。您应该使用 aUIView代替,理想情况下由 a 管理UIViewController

我假设,(因为您没有提供任何代码,我只能假设)您的窗口不“旋转”的原因是,它根本没有收到有关设备旋转的任何通知。只有keyWindow默认情况下接收它们。

我强烈建议您重新设计您的应用程序以使用适当管理的UIView方式。如果您出于某种原因不希望这样做,则必须注册您的实例UIWindow以接收UIDeviceOrientationDidChangeNotification然后(在处理程序中)评估新方向是什么并相应地更改窗口的框架(可能还有其他需要响应方向变化而完成)

于 2012-11-01T19:00:14.537 回答