2014-12-22 2 views
0

ContainerView와 탭과 같은 세 개의 버튼이 있습니다. 버튼을 탭하는 동안 ViewController를 UIContainerView로 전환하려고합니다. 버튼을 탭하면 App이 다운됩니다. 여기에 내 코드가 있습니다.ContainerView에서 ViewController를 전환하는 중 앱이 종료 됨

- (void) cycleFromViewController: (UIViewController*) oldVC toViewController: (UIViewController*) newVC{ 
    [oldVC willMoveToParentViewController:nil]; 
    [self addChildViewController:newVC]; 
    [self transitionFromViewController:oldVC toViewController:newVC duration:5 options:0 animations:^{ 
     newVC.view.frame = oldVC.view.frame; 

    } completion:^(BOOL finished) { 
     [oldVC removeFromParentViewController]; 
     [newVC didMoveToParentViewController:self]; 
     currentVC = newVC; 
    }]; 

} 

*** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: 'Children view controllers <FirstViewController: 0x78e98580> and <ThirdViewController: 0x78e99a60> must have a common parent view controller when calling -[UIViewController transitionFromViewController:toViewController:duration:options:animations:completion:]' 
+0

나는'oldVC willMoveToParentViewController : nil];이라고 생각한다.이 줄은'oldVC'에 부모가 없기 때문에 문제가된다.'transitionFromViewController : oldC'는 충돌을 일으킨다. – Akhilrajtr

+0

@Akhilrajtr : 나는 그 라인을 제거했다, 다시 충돌한다. –

답변

0

오류 자체가 호출 할 때

'어린이보기 컨트롤러와 공통 부모보기 컨트롤러가 있어야 문제를 가리키는 - [UIViewController에 transitionFromViewController : toViewController : 지속 시간 : 옵션 : 애니메이션 : 완료 :] '

전환하려는 VC가 상위 컨테이너로 속해 있는지 확인하십시오.

관련 문제