それは、成功したことがないからです。いずれかの方向を選択する必要があります。
コマンドを押したまま UIInterfaceOrientation をクリックすると、可能なオプションの列挙が表示されます。
次に、それらに対してテストして、YES
シナリオを決定できます。
私はもともとあなたの問題を誤解していたかもしれません。アプリがローテーションを許可していると言っていたようです。しかし、コードはそれを禁止する必要があります。
まだコードを起動していると言っていると思っていました。はいを見つけようとしている
考えるべきことが1つあります。利用可能なView Controllerが複数ある可能性があります。おそらくあなたのコードはヒットしていません。
これにはいくつかの問題が考えられます。
あなたのコードは使用されていません。カスタム ビュー コントローラーではなく、ビューが UIViewController として割り当てられているためです。
あなたのコードは使用されていますが、そのViewコントローラーは方向について尋ねられたものではありません。したがって、その特定のコードはヒットしていません。
ビルドが悪いと、間違ったアセンブリがデバイスに配置され続けます。
解決策は次のとおりです。
コードが割り当てられているものであることを確認してください。カスタムクラスに直接割り当てがあります。またはxibファイルが膨張しています。xib ファイルを開いたら、Identity Inspector を確認してください。View Controllerを選択し、カスタムクラスがクラスタイプに設定されていることを確認してください
階層を見てください。他にどんなView Controllerがありますか。おそらく、そのうちの 1 つは、任意の向きに自動回転できることをアプリに伝えているのでしょう。
「DerivedData」フォルダーを見つけて、完全に削除します。時々、これは主催者から機能します。また、ディスクから直接削除する必要がある場合もあります。次に、クリーンアップして再度ビルドします。
また、別の解決策は、プロジェクト ファイルで設定を行うのと同じくらい簡単です。
ファイル ブラウザからプロジェクト ファイルを選択すると、概要に iPad と iPod の設定が表示されます。禁止したい向きのボタンを「UnPress」することができます。および、それ以外の方法で向きをコーディングしていないビュー コントローラー。デフォルトでこれらを使用します。
混乱をお詫び申し上げます。
アップデート
私は通常、このコードを使用してオートローテーションを処理します。
iPad を他の ios デバイスと区別するだけでなく、提示されたコントローラーに要求を転送して、モーダルに表示されたビューが必要に応じて応答できるようにします。
あなたがそれを理解していないとき、オリエンテーションは苦痛です:)
// Detect iPad
#define IS_IPAD() ([[UIDevice currentDevice] respondsToSelector:@selector(userInterfaceIdiom)] ? \
[[UIDevice currentDevice] userInterfaceIdiom] == UIUserInterfaceIdiomPad : NO)
// Set preferred orientation for initial display
- (UIInterfaceOrientation)preferredInterfaceOrientationForPresentation{
if (IS_IPAD()){
return UIInterfaceOrientationLandscapeRight;
}
else {
return UIInterfaceOrientationPortrait;
}
}
// Return list of supported orientations.
- (NSUInteger)supportedInterfaceOrientations{
if (self.presentedViewController != nil){
return [self.presentedViewController supportedInterfaceOrientations];
}
else {
if (IS_IPAD()){
return UIInterfaceOrientationMaskLandscapeRight;
}
else {
return UIInterfaceOrientationMaskAll;
}
}
}
// Determine iOS 6 Autorotation.
- (BOOL)shouldAutorotate{
UIDeviceOrientation orientation = [UIDevice currentDevice].orientation;
// Return yes to allow the device to load initially.
if (orientation == UIDeviceOrientationUnknown) return YES;
// Pass iOS 6 Request for orientation on to iOS 5 code. (backwards compatible)
BOOL result = [self shouldAutorotateToInterfaceOrientation:orientation];
return result;
}
// handle iOS 5 Orientation as normal
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation{
// Return YES for supported orientations
if (self.presentedViewController != nil){
return [self.presentedViewController shouldAutorotate];
}
else {
if (IS_IPAD()){
return (interfaceOrientation == UIInterfaceOrientationLandscapeRight);
}
else {
return (interfaceOrientation == UIInterfaceOrientationPortrait);
}
}
}