0

我有的:

我有一个支持纵向和横向的视图控制器。在横向时,我显示纵向内容的过滤器视图。

我需要做什么:

当用户在横向视图中选择过滤器时,我想强制将设备旋转回纵向。

我做了一些谷歌搜索并发现

[[UIDevice currentDevice] setOrientation:UIInterfaceOrientationPortrait];

这是一个私有 API,我不想这样做。(但我所追求的正是我所追求的)

简而言之 - 在用户操作上我想强制旋转设备。文档中有我遗漏的东西吗?

任何想法都会很棒。担

4

2 回答 2

2

这是从经验中学到的!在你的viewDidLoad:

UIViewController *vc = [[UIViewController alloc] init];
[self presentModalViewControllerAnimated:NO];
[self dismissModalViewControllerAnimated:NO];

YES如果您仅返回景观,它将强制shouldAutorotateToInterfaceOrientation景观。没有私有 API!

于 2012-08-09T15:47:20.000 回答
-1

你可以试试这个如果有效。

-(void)forceFullyPortraitView{
[self.appDel.navigationController.view removeFromSuperview];
[[UIApplication sharedApplication] setStatusBarOrientation:UIInterfaceOrientationPortrait];
[ [UIApplication sharedApplication].self.delegate.window addSubview:self.appDel.navigationController.view];
self.navigationController.navigationBar.hidden=NO;
}
-(void)forceFullyLandscapeView{
[self.appDel.navigationController.view removeFromSuperview];
[[UIApplication sharedApplication] setStatusBarOrientation:UIInterfaceOrientationLandscapeRight];
[ [UIApplication sharedApplication].self.delegate.window addSubview:self.appDel.navigationController.view];
self.navigationController.navigationBar.hidden=NO;
}

您可以向右或向左设置landScepe。

于 2012-08-09T14:02:15.157 回答