所以我在我的iOS应用程序中创建并显示一个自定义窗口,因为我正在编写一个动态警报视图,其功能类似于咆哮/吐司警报。它在ios6中非常棒(希望我可以开源这个宝贝,你们都可以看看它)
但无论如何,当我在ios5中运行时,我的警报所在的窗口似乎不随设备/模拟器一起旋转。无论如何,我的自定义窗口保持纵向模式。
UIWindow只是一个UIView子类,因此没有好的'shouldRotate'委托方法。
我有点难以理解为什么在ios5中发生这种情况但不是6。任何帮助都会非常感激^ _ ^
答案 0 :(得分:1)
我的窗口有一个rootviewcontroller,我完全忘记了。我只需要实现
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation{
return YES;
}
让它发挥作用。
: - d
答案 1 :(得分:0)
通常不推荐两个在一个iOS应用中使用UIWindow
的多个实例。这样做的唯一正当理由是支持外部屏幕。您应该使用UIView
代替,理想情况下由UIViewController
管理。
我认为,(因为你没有提供任何代码,我只能假设)你的窗口没有“旋转”的原因是,它根本没有收到有关设备旋转的任何通知。默认情况下,只有keyWindow
才会收到它们。
我强烈建议您重新设计自己的应用,以便使用经过妥善管理的UIView
。如果您出于某种原因拼命想要这样做,则必须注册UIWindow
的实例以接收UIDeviceOrientationDidChangeNotification
,然后(在处理程序中)评估新方向是什么并更改窗口的相应的框架(加上可能需要做的其他事情以响应方向变化)