presentModalViewController的问题

时间:2010-05-14 11:28:30

标签: objective-c ipad

如果我的iPad处于横向模式并调用presentModalViewController,则视图会自动变为纵向模式。任何解决方案?

UIViewController * start = [[UIViewController alloc]initWithNibName:@"SecondView" bundle:nil];
start.modalTransitionStyle = UIModalTransitionStyleFlipHorizontal;
start.modalPresentationStyle = UIModalPresentationFormSheet;
[self presentModalViewController:start animated:YES];

在SecondView中我已添加:

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

3 个答案:

答案 0 :(得分:2)

问题是你的示例代码是创建UIViewController而不是实际的派生类。换句话说,你应该像这样创建你的控制器:

SecondViewController *start = [[SecondViewController alloc]initWithNibName:@"SecondView" bundle:nil];

我假设您的视图控制器类被称为“SecondViewController”,因为您使用类似的名称加载了一个nib。

如果您没有提供正确的实例,则无法调用您的委托方法。

答案 1 :(得分:1)

你的UIViewController'start'必须覆盖才能让它以正确的方向显示。

- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
{
    // Return YES for supported orientations.
    return YES;//UIInterfaceOrientationIsLandscape(interfaceOrientation);
}

我刚才得到了这个问题。我通过这种方式解决它。 希望这也可以帮到你。

答案 2 :(得分:0)

必然会有其他事情发生,因为IB中的定义对我来说也不起作用。原始OP是否使用splitViewController?