我必须使用两个UIWindow
创建应用程序(请不要问为什么)。首先UIWindow
的{{1}}支持所有方向。第二个 - 只有肖像和颠倒。因此,应用程序委托代码如下所示:
rootViewController
如果只有两个部分中的一个处于活动状态(第二个部分被评论) - 一切正常。但是如果windowOne在- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
// part one
self.windowOne = [[[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]] autorelease];
self.windowOne.rootViewController = [[ViewControllerOne alloc] init]; // supports all orientations
self.windowOne.rootViewController.view = [[[UIImageView alloc] initWithImage:[UIImage imageNamed:@"image1.png"]] autorelease];
[self.windowOne makeKeyAndVisible];
//~part one
// part two
self.windowTwo = [[[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]] autorelease];
self.windowTwo.rootViewController = [[ViewControllerTwo alloc] init]; // supports only portrait and upside down
self.windowTwo.rootViewController.view = [[[UIImageView alloc] initWithImage:[UIImage imageNamed:@"image2.png"]] autorelease];
[self.windowTwo makeKeyAndVisible];
//~part two
return YES;
}
之前变为关键且可见,则windowTwo会在windowTwo
允许的情况下旋转,但状态栏的行为非常奇怪:它像ViewControllerTwo
一样旋转是关键且可见的。
是否可以选择让状态栏旋转为windowOne
?
答案 0 :(得分:1)
虽然它是对我的攻击,但你可以尝试的内容如下:
在您的视图控制器shouldAutorotateToInterfaceOrientation
(适用于iOS5)或shouldAutorotate
(适用于iOS6)方法中添加以下代码行:
[[UIApplication sharedApplication] setStatusBarOrientation: interfaceOrientation animated: YES];
并测试应用程序在此之后的行为。
在(new for iOS6)shouldAutorotate
方法中获取面向接口的方法执行以下操作:
UIInterfaceOrientation interfaceOrientation = [[UIDevice currentDevice] orientation];
我没有为自己测试这一切,但它可以工作。
(查看一些关于如何在iOS6下支持自动旋转的post)