在用户操作上,旋转UIViewController

时间:2012-08-09 13:37:14

标签: iphone ios uiviewcontroller uiinterfaceorientation

我有什么:

我有一个支持肖像和风景的viewcontroller。在横向中,我显示了肖像内容的过滤视图。

我需要做什么:

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

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

[[UIDevice currentDevice] setOrientation:UIInterfaceOrientationPortrait];

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

简而言之 - 在用户操作上我想强行旋转设备。 我在文档中遗漏了什么吗?

任何想法都是超级的。 丹

2 个答案:

答案 0 :(得分:2)

从经验中学到了这一点!在viewDidLoad:

中执行此操作
UIViewController *vc = [[UIViewController alloc] init];
[self presentModalViewControllerAnimated:NO];
[self dismissModalViewControllerAnimated:NO];

如果仅为YES返回shouldAutorotateToInterfaceOrientation,则会强制使用横向广告。没有私人API!

答案 1 :(得分:-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;
}

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