iOS5自定义窗口旋转问题

时间:2012-11-01 18:38:31

标签: ios window alert

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

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

UIWindow只是一个UIView子类,因此没有好的'shouldRotate'委托方法。

我有点难以理解为什么在ios5中发生这种情况但不是6。任何帮助都会非常感激^ _ ^

2 个答案:

答案 0 :(得分:1)

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

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

让它发挥作用。

: - d

答案 1 :(得分:0)

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

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

我强烈建议您重新设计自己的应用,以便使用经过妥善管理的UIView。如果您出于某种原因拼命想要这样做,则必须注册UIWindow的实例以接收UIDeviceOrientationDidChangeNotification,然后(在处理程序中)评估新方向是什么并更改窗口的相应的框架(加上可能需要做的其他事情以响应方向变化)