3

メインのviewcontrollerにsubviewcontrollerを追加したいのですが、すべての画面ではなく、1つのセクションをカバーしたいだけです。画面の真ん中に置きたい。また、このサブビューコントローラーを透明にできるかどうかを知りたいので、メインのビューコントローラーの画像の背景を引き続き表示できます。現在、私はメインビューコントローラーを持っており、この方法を使用して別のビューコントローラーを追加します:

MenuAllEntriesViewController *menuAE = [[MenuAllEntriesViewController alloc] init];
[menuAE setModalTransitionStyle:UIModalTransitionStyleCrossDissolve];
[self presentModalViewController:menuAE animated:YES];

しかし、私のサブビューコントローラーはすべての画面をカバーしています...ありがとう

4

1 に答える 1

1

プログラムでこれを行うには: 最初に空UIViewのビューをメイン ビューに追加します。また、ビューから IBOutlet を作成しますMainWindowController。これは、子ビュー コントローラーのコンテナー ビューになります。子ビューを表示する場所にサイズと位置を設定するだけです。

次にMainWindowController.m、次のコードを使用して、メイン ビュー内の指定されたビューにビューが表示されている子ビュー コントローラーを追加できます。

//keep a strong reference to the view controller
self.otherViewController = [[OtherViewController alloc] init]; 
[self addChildViewController:otherViewController];
//set the frame
CGFloat width = containerView.frame.size.width;
CGFloat height = containerView.frame.size.height;
self.otherViewController.view.frame = CGRectMake(0, 0, width, height);
[containerView addSubview:self.otherViewController.view];
[self.otherViewController didMoveToParentViewController:self];

ストーリーボードを使用し、iOS 6 を対象とする場合、プログラミングを行う必要さえありません。Container Viewストーリーボード ビュー (以前は Interface Builder と呼ばれていました)では、オブジェクト ライブラリからメイン ビューにドロップするだけです。Interface Builder は自動的に子ビュー コントローラーを作成しますが、コンテインメント セグエを他のビュー コントローラーにポイントすることもできます。

于 2012-11-06T14:29:44.847 に答える