在此站点上已经被询问了十多次,但是我没有找到适合我的答案。我有一个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,我什至尝试将其添加到主应用程序委托类中,但没有任何运气。似乎不必为了重载shouldAutorotateToInterfaceOrientation方法而必须继承UINavigationController类。
我是从错误的对象调用presentModalViewController吗?我试过[self presentModalViewController ...]以及[self.parentViewController presentModalViewController ...]都得到相同的结果。
最佳答案
我假设您的代码示例中的self
是右视图(详细信息)视图控制器。您需要从根presentModalViewController
调用UISplitViewController
。
关于iphone - 允许在以编程方式显示的以编程方式创建的 View 内自动旋转,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/6283266/