0

このような親/子ビューコントローラーのシステムがあります

-- (Parent) RootViewController
      -- (Child) ChildController
              -- (Child) GrandChildController1
              -- (Child) GrandChildController2

基本的に、childViewController を持つルート ビュー コントローラーがあります。その childViewController は、他のいくつかのコントローラーの parentViewController として機能します。ここで、これらの GrandChildViewControllers の 1 つを回転させたいと思います。しかし、これは回転が許可されている階層内の唯一のコントローラーです。

次のように、階層に子ビュー コントローラーを追加しています。

[self addChildViewController:_childViewController];
[self.view addSubview:_childViewController.view];

ここで、デバイスが回転すると、最初の childViewController は回転イベントを受け取りますが、そのコントローラーの子 (孫のビュー コントローラー) は回転イベントを受け取りません。理由を知っている人はいますか?

ありがとう

4

1 に答える 1

1

注意事項:

  • iOS 6 では、オーバーライドする必要もあります。supportedInterfaceOrientationsオーバーライドshouldAutorotateするだけでは不十分です。
  • iOS 5 では、親 VC が返さNOshouldAutorotateToInterfaceOrientation:た場合、子 VC のローテーションがキャンセルされます。iOS 6 の自動回転メカニズムが同様に動作するかどうかはわかりません。

あなたのコメントから、私はあなたが欠けていると推測しますsupportedInterfaceOrientations。私の推測が間違っている場合は、すべてのコントローラーで autorotate メソッドの実装を示していただけると助かります。

于 2013-06-05T00:24:05.890 に答える