ios dev - shouldAutorotateToInterfaceOrientation方法未调用纵向模式

时间:2012-08-09 10:43:39

标签: iphone ios

在我的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调用此方法。但是当我旋转设备时,不会仅为此方向调用此方法。

1 个答案:

答案 0 :(得分:0)

shouldAutorotateToInterfaceOrientation通常只调用一次来告诉调用者,应用程序将支持哪些方向(ORed值或所有的YES)。在显示新方向之前,您可能正在寻找willRotateToInterfaceOrientation:duration:来检查方向和/或进行一些重新排列。