IOS中的容器视图

IOS中的容器视图,ios,Ios,我想使用一个容器视图来启动另一个视图控制器,但是我找不到关于如何通过编程来分配它的任何信息。我可以从用户界面上完成,但是如果我想用COE创建一个,并将其链接到UIviewController,我该怎么做呢?它的行为是否像普通的UIview?如果我按照您的问题,您会问如何在代码中使用视图控制器包含。我建议查看《视图控制器编程指南》的一节,其中显示了执行此操作的代码,包括添加子视图控制器: [self addChildViewController:content];

我想使用一个容器视图来启动另一个视图控制器,但是我找不到关于如何通过编程来分配它的任何信息。我可以从用户界面上完成,但是如果我想用COE创建一个,并将其链接到UIviewController,我该怎么做呢?它的行为是否像普通的UIview?

如果我按照您的问题,您会问如何在代码中使用视图控制器包含。我建议查看《视图控制器编程指南》的一节,其中显示了执行此操作的代码,包括添加子视图控制器:

[self addChildViewController:content];                 // 1
content.view.frame = [self frameForContentController]; // 2
[self.view addSubview:self.currentClientView];
[content didMoveToParentViewController:self];          // 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];
            }];
}
当使用子视图控制器(至少是那些不占用整个屏幕的控制器)时,在父视图控制器的视图上有一个指示子视图控制器边界的
UIView
非常有用。它大大简化了一系列任务。在上面的代码片段中,他们假设子视图被称为
frameForContentController

或删除一个(在此代码段中,
content
是引用要删除的子控制器的
UIViewController*
):

如果要用另一个子控制器替换子控制器:

[self addChildViewController:content];                 // 1
content.view.frame = [self frameForContentController]; // 2
[self.view addSubview:self.currentClientView];
[content didMoveToParentViewController:self];          // 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];
            }];
}

我还建议您退房。

只需使用母公司VC拥有的普通UIView即可。创建一个子VC并在
addChildViewController:
的帮助下将其添加到父VC中,然后将子VC的视图作为子视图添加到容器视图中-
addSubview:
在VC的
viewDidLoad
方法中。

-[UIViewController presentModalViewController:动画:]
&co.阅读苹果公司优秀的文档。但我想使用容器将其设置为子视图控制器无论何时
添加子视图控制器
,请务必使用
didMoveToParentViewController