ユーザーがアプリ内のどこにいるかに応じて、サポートされている向きを定義しようとしていますが、そうするのは非常に困難です。
これまでのところ、iOS6 でサポートされるようになった supportedInterfaceOrientationsForWindow: および shouldAutorotate メソッドを使用する必要があることがわかりましたが、どちらのメソッドも、UIViewController で定義している場所では呼び出されません。
これは私のコードがどのように見えるかです
- (BOOL)shouldAutorotate {
return YES;
}
- (NSUInteger)supportedInterfaceOrientationsForWindow {
return UIInterfaceOrientationMaskPortrait;
}
私の Target Summary Supported Orientatoin では、すべてのオプションの選択を解除しました.. m ViewControllers のそれぞれでサポートされている向きを定義するだけだと考えています...これが正しいことかどうか知りたいですか?
今、私がやろうとしていることはアプリの構造に依存していることを読んだので、ここでアプリの概要を説明します。
- main UIViewController ((3 つの異なる navigationControllerViews) に移動する 3 つのボタンが間違っています! navigationController が 1 つだけです... このコードを見てから長い時間が経ちました。)
- セカンダリ UIViewController (ナビゲーション コントローラーを保持)
- その他の UIViewControllers (セカンダリ NavigationController に表示されます)
NavigationController スタックの最後の ViewController まで、すべての ViewController が portrate に表示されるようにしたいと思います。NavigationController の最後のビューは、必要に応じて向きを左または右に回転できる必要がある特別なビューです。
これが可能かどうかを知りたいのですが、可能であれば、上記のコードが機能していない/呼び出されていないのはなぜですか。
どんな助けでも大歓迎です。
// 質問への更新 Re:
RootView のロード (3 つのボタン。ナビゲーション コントローラーを含むビューをロードするためにボタンが選択されたときに呼び出されるメソッド)
- (IBAction)buttonClick: (UIButton *) sender
{
//..
// v ----->
if ([sender isEqual:vUIButton]) {
VSearchViewController *vSearchViewController = [[VSearchViewController alloc] initWithNibName:@"VSearchViewController" bundle:nil];
[self.navigationController pushViewController:vehicalSearchViewController animated:YES];
}
//..
}
次に、VSearchViewController 内で、新しいビューを次のように UINavigation スタックにロードします
//..
FModelsViewController *fModelsViewController = [[FModelsViewController alloc] initWithNibName:@"FModelsViewController" bundle:nil];
// Sets the back button for the new view that loads (this overrides the usual parentview name with "Back")
self.navigationItem.backBarButtonItem = [[UIBarButtonItem alloc] initWithTitle:@"Back" style: UIBarButtonItemStyleBordered target:nil action:nil];
[self.navigationController pushViewController:fModelsViewController animated:YES];
//..
したがって、レビューでは、appDelegate にナビゲーション コントローラーを設定し、アプリのすべてのビューが navigationStack にあります。NavigationController が 3 つあると言うのは間違っていました。申し訳ありません..このコードを見てから1年半が経ちました..