iOS首先自动旋转视图

时间:2013-02-15 17:08:53

标签: ios rotation landscape-portrait

我正在开发一个ios应用程序,它必须同时适用于横向和纵向,除了一个视图外,应始终处于横向状态。所以,我有:

-(BOOL) shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation
{
    return (toInterfaceOrientation == UIInterfaceOrientationLandscapeRight) || (toInterfaceOrientation == UIInterfaceOrientationLandscapeLeft);
}

如果我在横向模式下午餐,并进入此视图并旋转设备(iPad),则调用此方法并返回false,因此界面不会旋转,这是好事。

但如果我是肖像并进入此视图,则调用此方法并返回false,但方向不会更改。在此上下文中,如果我将设备旋转为横向,则该方法返回true并且界面正确旋转,如果我尝试再次旋转为纵向,则此方法返回false并且界面保持横向。

如何在第一次看到此视图时实现这一点,如果设备处于纵向状态,界面会更改为横向?

另外,我尝试了

- (NSUInteger)supportedInterfaceOrientations

但它永远不会被召唤。

提前致谢!

1 个答案:

答案 0 :(得分:0)

shouldAutorotateToInterfaceOrientation:在iOS 6.0中已弃用。改为覆盖supportedInterfaceOrientationspreferredInterfaceOrientationForPresentation方法。

来自preferredInterfaceOrientationForPresentation

上的文档
  

如果您的视图控制器实现了此方法,那么在呈现时,   它的视图以首选方向显示(尽管可以在以后显示)   被旋转到另一个支持的旋转)。如果你没有实施   这种方法,系统使用电流呈现视图控制器   状态栏的方向。