以前的 iOS 程式 (4.0 版以前) 都是用 addSubview 来将 app 的 root view 加到 window 上面,例如下面的作法:
[self.window addSubview:navigationController.view];
我发现在 iOS 6 上面,这个作法会使 rotation 失效 (iOS 6 以前完全没问题),必须改成这个方式:
if([[[UIDevice currentDevice] systemVersion] floatValue] >= 4.0) self.window.rootViewController = navigationController;
else [self.window addSubview:navigationController.view];
iOS 4 之后才支援 self.window.rootViewController = navigationController 的方式。
这样在 iOS 6 上 rotation 就正常了。
[self.window addSubview:navigationController.view];
我发现在 iOS 6 上面,这个作法会使 rotation 失效 (iOS 6 以前完全没问题),必须改成这个方式:
if([[[UIDevice currentDevice] systemVersion] floatValue] >= 4.0) self.window.rootViewController = navigationController;
else [self.window addSubview:navigationController.view];
iOS 4 之后才支援 self.window.rootViewController = navigationController 的方式。
这样在 iOS 6 上 rotation 就正常了。