Приложение завершает работу при переключении ViewControllers в ContainerView

У меня есть ContainerView и три кнопки, такие как вкладка. При нажатии на кнопку я хочу переключить ViewControllers в UIContainerView. При нажатии на кнопку приложение вылетает, вот мой код.

- (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:]'

person Vineesh TP    schedule 22.12.2014    source источник
comment
Я думаю, что [oldVC willMoveToParentViewController:nil]; это вызывает проблему, после того как эта строка oldVC не будет иметь родителя. Затем transitionFromViewController:oldC вызовет сбой.   -  person Akhilrajtr    schedule 22.12.2014
comment
@Akhilrajtr: я удалил эту строку, снова происходит сбой   -  person Vineesh TP    schedule 22.12.2014


Ответы (1)


Сама ошибка указывает на проблему

'Контроллеры дочерних представлений и должны иметь общий родительский контроллер представления при вызове -[UIViewController transitionFromViewController:toViewController:duration:options:animations:completion:]'

Просто убедитесь, что VC, которые вы пытаетесь переключить, принадлежат контейнеру в качестве родителя.

person Lithu T.V    schedule 22.12.2014