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 に答える