在我的rootViewController中,我重新实现了这样的方法shouldAutorotateToInterfaceOrientation
。
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation {
switch (toInterfaceOrientation) {
case UIInterfaceOrientationPortrait:
NSLog(@"Orientation - Portrait");
break;
case UIInterfaceOrientationLandscapeLeft:
NSLog(@"Orientation - Left");
break;
case UIInterfaceOrientationLandscapeRight:
NSLog(@"Orientation - Right");
break;
case UIInterfaceOrientationPortraitUpsideDown:
NSLog(@"Orientation - UpsideDown");
break;
default:
break;
}
return YES;
}
当我旋转设备时,此方法适用于LandscapeRight,LandscapeLeft和UpsideDown,但不适用于纵向方向。
在启动时,视图处于纵向模式,并使用UIInterfaceOrientationPortrait调用此方法。但是当我旋转设备时,不会仅为此方向调用此方法。
答案 0 :(得分:0)
shouldAutorotateToInterfaceOrientation
通常只调用一次来告诉调用者,应用程序将支持哪些方向(ORed值或所有的YES)。在显示新方向之前,您可能正在寻找willRotateToInterfaceOrientation:duration:
来检查方向和/或进行一些重新排列。