Привет всем Я анимирую отображение 2 UIViewController внутри UIContainerView.Для представления контроллеров представления я реализовал этот метод
#pragma mark - Animation Controller
-(void)moveViewControllerFrom:(UIViewController *)currentViewController toViewController:(UIViewController *)nextViewController {
CGFloat widthVC = self.containerView.frame.size.width;
CGFloat heightVC = self.containerView.frame.size.height;
if (currentViewController == nextViewController) return;
if (_isNextViewController) {
nextViewController.view.frame = CGRectMake(widthVC, 0, widthVC, heightVC);
[self addChildViewController:nextViewController];
[currentViewController willMoveToParentViewController:nil];
[self transitionFromViewController:currentViewController toViewController:nextViewController duration:.4 options:0 animations:^{
nextViewController.view.frame = currentViewController.view.frame;
currentViewController.view.frame = CGRectMake(0 - widthVC, 0, widthVC, heightVC);
}
completion:^(BOOL finished) {
[currentViewController removeFromParentViewController];
[nextViewController didMoveToParentViewController:self];
}];
}
else {
nextViewController.view.frame = CGRectMake(0 -widthVC, 0, widthVC, heightVC);
[self addChildViewController:nextViewController];
[currentViewController willMoveToParentViewController:nil];
[self transitionFromViewController:currentViewController toViewController:nextViewController duration:.4 options:0 animations:^{
nextViewController.view.frame = currentViewController.view.frame;
currentViewController.view.frame = CGRectMake(widthVC, 0, widthVC, heightVC);
}
completion:^(BOOL finished) {
[currentViewController removeFromParentViewController];
[currentViewController didMoveToParentViewController:self];
}];
}
}
Теперь у меня возникает проблема, когда я быстро нажимаю кнопки «вперед» и «назад» (те, которые я использую, чтобы представить новый контроллер представления или перейтивернуться к предыдущему виду контроллера).Мое приложение аварийно завершает работу и возвращает мне эту ошибку:
*** Завершение работы приложения из-за необработанного исключения «NSInvalidArgumentException», причина: «Дочерние контроллеры представления и должны иметь общий родительский контроллер представления при вызове -[UIViewController transitionFromViewController: toViewController: продолжительность: опции: анимации: завершение:] '
Может кто-нибудь помочь мне понять, где я ошибаюсь в своем коде?