2012-07-25 3 views
0

1 개의 View Controller가 CustomViewContainer로 작동하며 처음에 시작할 때 1 개만 추가 된 2 개의 하위보기 컨트롤러가 있습니다.iOS 5의 맞춤 컨테이너보기 컨트롤러에 하위 컨트롤러를 추가하려면 addSubView가 필요합니까?

자식 컨테이너의 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]; 
} 

내가 'addChildViewController'[self.view addSubview:_childController.view]를 추가하는 경우

은보기가 표시됩니다. 하지만 컨테이너 뷰 컨트롤러의 모든 부분은 직접적인 뷰 조작을 피하기위한 것이라고 생각했습니다.

첫 번째 하위보기 컨트롤러를 추가하는 경우 'transitionFromViewController'를 호출 할 수 있으며 '그렇다면'보기 컨트롤러는 무엇입니까?

답변

0

addChildViewController 자식보기 컨트롤러가 추가됩니다. 그것은 그 견해와 아무 상관이 없습니다. transitionFromViewController:toViewController:duration:options:animation:completion (또는 뭐든간에 ...) 마술이 일어나는 곳입니다. 귀하의 fromViewController는 처음에 추가 한 뷰 컨트롤러 일 수 있으며, toViewController는 두 번째 뷰 컨트롤러입니다.

+0

1 명의 자식으로 시작하고 나중에 두 번째 자식을 추가하지 않으려는 경우 - 'fromViewController'가 0이어야합니까? –

+0

질문에 대한 오해를했습니다. 필자의 첫 번째 뷰 컨트롤러의 하위 뷰는 addSubview를 사용하여 삽입해야합니다. 후속 뷰 컨트롤러는 내 답변의 메소드를 사용하여 표시 할 수 있습니다. –

관련 문제