2010-08-26 44 views
6

我的应用程序使用2个UIWindows。 第一个示出具有带有ViewControllers仅旋转到肖像取向一个的TabBar控制器。到此为止,一切都很好。多个Windows轮换问题 - iPhone/iPad的

- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation { 
return (UIInterfaceOrientationIsPortrait(interfaceOrientation)); 
} 

在另一个窗口,我有一个UIViewController旋转到所有的方向。

的问题是,当我告诉第二个窗口

[secondWindow makeKeyAndVisible]; 

,然后返回到第一个

[firstWindow makeKeyAndVisible]; 

状态栏旋转到各个方向的活动shouldAutorotateToInterfaceOrientation不会触发。我如何解决这个问题?

回答

4

其优良的有多个UIWindows在一个应用程序,但在这里需要提醒的是,苹果的代码似乎通过检查每一个UIWindow你,看看最上面的视图控制器允许一定的旋转。如果这些窗口中的任何一个都允许旋转,则无论UIWindow是最前面还是可见,状态栏都将旋转。

在我自己的应用程序,我躲,我没有使用的UIWindow,并增加了在相关UIViewControllers一个是否隐藏检查,不允许旋转;如果当前隐藏的窗口。

1

其优良的有多个UIWindows在一个应用程序,但在这里需要提醒的是,苹果的代码似乎通过检查每一个UIWindow你,看看最上面的视图控制器允许一定的旋转。

根据答案,做了很多测试并得出结论:状态栏的旋转依赖于每个窗口的最顶层视图控制器。