[self presentModalViewController:controller animated:YES];表现得很奇怪

时间:2011-03-10 16:42:40

标签: iphone objective-c ios ios4

我有一个通用应用程序,支持iPad中的所有方向,只支持iPhone / iPod中的potrait。我的代码看起来有点像这样:

@implementation UIViewController ( interfaceOrientationHack )
  - (void) shouldAutorotateToInterfaceOrientation: ( UIInterfaceOrientation ) toInterfaceOrientation {
    if( iPad ) {
      return YES;
    } else if( toInterfaceOrientation == UIInterfaceOrientationPotrait ) { 
      return YES;
    } else return NO;
  }
@end

从我的一个控制器中,我启动导航控制器作为模态视图控制器

[ self presentModalViewController: c animated: YES ];

目前的问题是,模态控制器在方向上正确启动,但是当我改变方向时,模态控制器不会改变其方向,所有其余的控制器都能正常运行。

任何帮助都将非常感激。提前谢谢。

1 个答案:

答案 0 :(得分:0)

从UIViewcontroller类引用:“默认情况下,UIViewController类仅以纵向模式显示视图。要支持其他方向,必须覆盖shouldAutorotateToInterfaceOrientation:方法,并为子类支持的任何方向返回YES。如果您的自动调整属性视图配置正确,这可能就是你所要做的。“

由于你的模态视图继承自UIViewcontroller,你必须在模态视图中覆盖shouldAutorotateToInterfaceOrientation :.