iOS5 では、コントローラがオリエンテーション イベントを受信し、コールバックを追加/削除し、それらをレスポンダ チェーンに適切に挿入するための便利な方法があります。なので、やるならこれが一番です。2 つの UIViewController に同じビューを追加するなどのばかげたことをしない限り、問題ありません。
なぜそれをするのですか?ゲーム エンジンをマスター コントローラーに配置し、クライアントを作成し、そのクライアントを子ビュー コントローラーにカプセル化し、それを 2 人のプレイヤーに再利用するのは理にかなっていると思います。
そのようなことが必要だと感じた場合は、ネストされたコントローラーを使用して複雑さをカプセル化することもできます。例: 1 つはゲーム エンジンと通信するインターフェイス用で、もう 1 つはエンジンからイベントを取得する画面用です。
UIViewController コンテインメントは簡単です。6 つのメソッドを読み、何が何を呼び出すかを理解する必要があります。ドキュメンテーションを読むことは大歓迎ですが、一言で言えば:
たとえば、あるコントローラーを別のコントローラーにネストするには、子のビューを通常のビューとして追加し、以下に示す順序で addChildViewController: および didMoveToParentViewController: を呼び出します。
// from the parent view controller
ChildViewController *child = [ChildViewController new];
[self addChildViewController:child];
[self.view addSubview:child.view];
[child didMoveToParentViewController:self];