通过presentModalViewController添加的视图的自动旋转支持?

时间:2010-04-29 22:16:15

标签: iphone objective-c cocoa-touch

似乎无论我在我的应用程序中支持哪些方向,当我使用presentModalViewController显示视图时,应用程序都会进入纵向视图。如何使用模态视图控制器支持不同的方向?

3 个答案:

答案 0 :(得分:1)

使用presentModalViewController呈现的控制器:animated:应支持任何方向,通常使用此方法:

- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
{
    return YES;
}

使用此方法,当您以横向显示控制器时,它也会以横向方向正确显示。

答案 1 :(得分:0)

我有同样的问题。我设置了TRUE AutorotateInterfaceOrientation但是在开始时我的模态视图总是呈现Portrait,即使它是Landscape。只有当我改变了设备方向(在模拟器中)时,它的行为才变得正确。但一开始没有! 我不知道为什么,但一切都取决于你提出的观点。 例如,如果从viewDidLoad方法中显示,则会出现问题。为了解决问题,我从viewDidLoad中调用的方法调用presentModalView(显然,它看起来是一样的)。所以,我做了类似的事情:

- (void) viewDidLoad
{
    [super viewDidLoad];
    // add this line
    [self performSelector:@selector(presentModal) withObject:nil afterDelay:0];
}

-(void) presentModal{
    // here present your view
}

- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
{
    return YES;
}

这对我有用

答案 2 :(得分:0)

我刚刚通过在viewDidAppear中添加代码为自己解决了这个问题。我认为它没有出现在我正确方向的原因是因为我在viewDidLoad中有show模式代码,在那一点上,我认为视图刚刚加载但方向尚未设置。所以,在viewDidAppear中添加它对我有用。你可能也会在viewWillAppear中获得好运(因为到那个时候,它必须知道方向,边界,大小等)。