0

我有 1 个视图控制器充当 CustomViewContainer,它有 2 个子视图控制器,最初在启动时仅添加了 1 个。

addChildViewController从 Container 对子项调用,然后对子项进行后续调用,不会didMoveToParentViewController在屏幕上显示我的子视图。相反,我仍然看到父控制器的视图。

@implementation ContainerViewController // inherits from UIViewController
- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil
{
    LOG_METHOD_SIG();    
    if (self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil])
    {
        // ChildViewController is a subclass of UIViewController
        _childController = [[ChildViewController alloc] initWithNibName:nil bundle:nil];
    }
    return self;
}

- (void)viewDidLoad
{
    [super viewDidLoad];

    [self addChildViewController:_childController];

    // Expected the following line to display the child controller's view
    [_childController didMoveToParentViewController:self];
}

如果我在[self.view addSubview:_childController.view]之后添加'addChildViewController',则会显示视图。但我认为容器视图控制器的全部目的是避免直接视图操作。

在您添加第一个子视图控制器的情况下,您可以调用“transitionFromViewController”吗?如果可以,“从”视图控制器是什么?

4

1 回答 1

0

addChildViewController就是这样做的:它添加了一个子视图控制器。它对它的观点没有任何作用。transitionFromViewController:toViewController:duration:options:animation:completion(或其他...)是魔法发生的地方。您的 fromViewController 可能是您最初添加的视图控制器,toViewController 是您的第二个视图控制器。

于 2012-07-26T06:33:10.370 回答