0

MainWindow.xibで1つのNavigationViewControllerと1つのViewController(named-container)を使用しているという奇妙なシナリオを思いつきました。

NavigationControllerは後続のビューをロードし、並行して、他のViewController(コンテナー)はすべての上にいくつかの画像をロードします-NavigationViewControllerによって表示されるビューに関係なく。

デバイスを回転すると、NavigationControllerの後続のビューは期待どおりに回転しますが、コンテナーとその後続のビューは回転しません。

これが私のMainWindow.xibのスクリーンショットです

ここに画像の説明を入力してください

これがコードです。

.hで

UINavigationController *navigationController;
IBOutlet UIViewController *container;

in .m(ApplicationDidFinishLaunchingWithOptions)

[window addSubview:navigationController.view];
[window addSubview:container.view];
[window makeKeyAndVisible];

また、別のクラスを作成して、それをviewControllerに割り当ててみました。(そのViewDidLoad)メソッドは起動しますが、(ShouldRotateToInterfaceOrientation)には含まれていません

私はどこかで、IOSが複数のViewControllerの向きをサポートしていないことを読みました。

4

2 に答える 2

1

1つのナビゲーションで2つのビューを使用しようとしているので、これを試してみるべきだと思います。ウィンドウのサブビューを作成しないでください。メインビューのサブビューを次のように作成してください。-

[window addSubview:navigationController.view];
 [navigationController.view addSubview:container.view];
[window makeKeyAndVisible];

私はこのコードを試していませんが、アイデアを提案しているだけです。ありがとう。

于 2012-05-28T05:57:49.737 に答える
1

コンテナビューを使用している場合を除き、画面にはviewControllerが1つだけ存在する必要があります。

クラスリファレンスの「ContainerViewControllerの実装」セクションを参照してください。

非常に短いバージョンでは、独自のコンテナを作成し、それらが説明するメソッドを使用して2つのViewControllerをコンテナに追加する必要があります。

呼び出す必要のある重要なメソッドは次のとおりです。

  • addChildViewController:
  • removeFromParentViewController
  • transitionFromViewController:toViewController:duration:options:animations:completion:
  • willMoveToParentViewController:
  • didMoveToParentViewController:
于 2012-05-28T06:03:41.790 に答える