このトピックに関するほぼすべての投稿に目を通したと思います。したがって、読むまでまだ質問を殺さないでください。この質問は、iOS 7 の XCode 5 に関するものです。
横向きモードと縦向きモードの両方をサポートするアプリがあります。私のプロジェクトの展開情報では、すべての方向がチェックされます。
アプリの起動時に表示
- v1ViewController (常にランドスケープ モードで開く必要があります)
ユーザーがボタンを押すと、
- v3ViewController (常に縦向きモードで開く必要があります)
私が抱えている問題は、アプリが起動し、iPhoneを縦向きモードで持っていると、これが表示されることです。
iPhoneを横向きモードに切り替えると、これが表示されます。
v1ViewController に常に横向きモードを表示させるにはどうすればよいですか?
これは私が今持っているコードです。
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
{
if (interfaceOrientation == UIInterfaceOrientationLandscapeLeft || interfaceOrientation == UIInterfaceOrientationLandscapeRight)
{
return YES;
}
else
{
return NO;
}
}
しかし、これを追加すると、表示する最初の写真のようにビューが常に開き、回転は効果がありません。
- (BOOL)shouldAutorotate
{
UIInterfaceOrientation interfaceOrientation = [[UIApplication sharedApplication] statusBarOrientation];
NSLog(@"interfaceOrientation: %d ...", interfaceOrientation);
if (interfaceOrientation == UIInterfaceOrientationLandscapeLeft)
{
return YES;
}
else if (interfaceOrientation == UIInterfaceOrientationLandscapeRight)
{
return YES;
}
else
{
return NO;
}
}
- (UIInterfaceOrientation)preferredInterfaceOrientationForPresentation
{
return UIInterfaceOrientationLandscapeLeft;
}
-(NSUInteger)supportedInterfaceOrientations
{
return UIInterfaceOrientationLandscapeLeft | UIInterfaceOrientationLandscapeRight;
}