允许在以编程方式创建的视图中进行自动旋转,该视图以模态方式显示

时间:2011-06-08 18:11:22

标签: iphone objective-c xcode ios ipad

在这个网站上已经有人问了十几次,但是我找不到适合我的答案。我有一个iPad应用程序,在根级别上以编程方式创建了UISplitViewController。在由用户交互触发的右侧窗格中显示的视图内,以编程方式创建UINavigationController并将其呈现给用户。这是代码:

listenerController = [[UINavigationController alloc] initWithRootViewController:listenerView];
[listenerController.navigationBar setTintColor:[UIColor colorWithRed:185.0f/255.0f green:80.0f/255.0f blue:0.0f/255.0f alpha:1.0f]];

if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad) {                    
    [listenerController setModalPresentationStyle:UIModalPresentationFormSheet];
    [listenerController setModalTransitionStyle:UIModalTransitionStyleCrossDissolve];
    [listenerController setModalInPopover:YES];
}

[self presentModalViewController:listenerController animated:YES];    
[listenerController release];

这确实可以正确地创建视图控制器,但是当它显示时,无论我使用iPad的方向如何,都会强制iPad返回纵向视图。然后当我关闭模态窗口时,它将向后旋转。

我已经在右侧窗格的viewcontroller中将shouldAutorotateToInterfaceOrientation设置为YES,我甚至尝试将此添加到主app appate类,没有任何运气。看起来我不应该只是为了覆盖shouldAutorotateToInterfaceOrientation方法而继承UINavigationController。

我是否从错误的对象调用presentModalViewController?我试过[self presentModalViewController ...]以及[self.parentViewController presentModalViewController ...],结果相同。

1 个答案:

答案 0 :(得分:1)

我假设您的代码示例中的self是右视图(详细信息)视图控制器。您需要从根presentModalViewController致电UISplitViewController

相关问题