3 回答
TA贡献1817条经验 获得超14个赞
这应该可以工作,类似于iOS 6之前的版本,但带有UINavigationController:
UIViewController *portraitViewController = [[UIViewController alloc] init];
UINavigationController* nc = [[UINavigationController alloc] initWithRootViewController:portraitViewController];
[self.navigationController presentModalViewController:nc animated:NO];
[self.navigationController dismissModalViewControllerAnimated:NO];
我先打这个,再推下一个UIViewController。UIViewController即使当前UIViewController处于横向模式,它也会强制将下一个按下的按钮显示为纵向模式(也适用于纵向到横向)。适用于iOS 4 + 5 + 6。
TA贡献1828条经验 获得超3个赞
我认为最好的解决方案是坚持使用Apple官方文档。因此,据此我使用以下方法,并且在iOS 5和6上一切正常。在我的VC中,我重写了以下方法:
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
{
// Return YES for supported orientations
return UIInterfaceOrientationIsPortrait(interfaceOrientation);
}
适用于iOS 6的方法,第一种方法返回支持的方向遮罩(如其名称所示)
-(NSUInteger)supportedInterfaceOrientations{
return UIInterfaceOrientationMaskPortrait;
}
第二个告诉您的VC,当要显示VC时,这是首选的界面方向。
- (UIInterfaceOrientation)preferredInterfaceOrientationForPresentation
{
return UIInterfaceOrientationPortrait;
}
只需将Portrait更改为所需的方向即可;)此解决方案运行流畅,我不喜欢围绕此简单解决方案创建宏和其他内容的想法。希望能有所帮助...
- 3 回答
- 0 关注
- 626 浏览
添加回答
举报