4

Container View を使用して別の View Controller を開始したかったのですが、プログラムで割り当てる方法に関する情報が見つかりません。ユーザー インターフェイスから実行できますが、coes を使用して作成し、それを UIviewController にリンクするにはどうすればよいでしょうか? 通常の UIview のように動作しますか?

4

2 に答える 2

11

私があなたの質問に従うと、コードでView Controllerコンテインメントを使用する方法を尋ねています。View Controller Programming GuideのCreating Custom Container View Controllersセクションをチェックすることをお勧めします。これには、子View Controllerの追加を含む、これを行うためのコードが示されています。

[self addChildViewController:content];                 // 1
content.view.frame = [self frameForContentController]; // 2
[self.view addSubview:self.currentClientView];
[content didMoveToParentViewController:self];          // 3

子View Controller(少なくとも画面全体を占有しないもの)を使用する場合、子View UIViewControllerの境界を指示する親View Controllerのビューに があると便利です。一連のタスクを大幅に簡素化します。上記のコード スニペットでは、サブビューが呼び出されていると想定していますframeForContentController

または、1 つを削除します (このコード スニペットでcontentは、UIViewController *削除される子コントローラーを参照するのは です):

[content willMoveToParentViewController:nil];  // 1
[content.view removeFromSuperview];            // 2
[content removeFromParentViewController];      // 3

子コントローラーを別の子コントローラーに置き換えたい場合は、次のようにします。

- (void) cycleFromViewController: (UIViewController*) oldC
                toViewController: (UIViewController*) newC
{
    [oldC willMoveToParentViewController:nil];                        // 1
    [self addChildViewController:newC];

    newC.view.frame = [self newViewStartFrame];                       // 2
    CGRect endFrame = [self oldViewEndFrame];

    [self transitionFromViewController: oldC toViewController: newC   // 3
          duration: 0.25 options:0
          animations:^{
             newC.view.frame = oldC.view.frame;                       // 4
             oldC.view.frame = endFrame;
           }
           completion:^(BOOL finished) {
             [oldC removeFromParentViewController];                   // 5
             [newC didMoveToParentViewController:self];
            }];
}

WWDC 2011 - Implementing UIViewController Containmentもチェックすることをお勧めします。

于 2012-12-23T19:39:57.563 に答える
0

親VCが所有する通常のUIViewを使用するだけです。を使用して子 VC を作成し、それを親 VC に追加してから、VC のメソッドでaddChildViewController:、子 VC のビューをサブビューとしてコンテナー ビューに追加します。addSubview:viewDidLoad

于 2012-12-23T19:47:11.027 に答える