0

CustomViewContainer として機能する 1 つのビュー コントローラーがあり、2 つの子ビュー コントローラーがあり、起動時に最初に追加されるのは 1 つだけです。

addChildViewController子のコンテナから呼び出し、その後子で を呼び出すと、自分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` を呼び出すことができますか? もしそうなら、'from' ビュー コントローラーは何でしょうか?

4

1 に答える 1

0

addChildViewController子ビュー コントローラーを追加します。そのビューでは何もしません。transitionFromViewController:toViewController:duration:options:animation:completion(または何でも...) 魔法が起こる場所です。fromViewController は最初に追加したビュー コントローラーである可能性があり、toViewController は 2 番目のビュー コントローラーです。

于 2012-07-26T06:33:10.370 に答える