Я столкнулся с этой проблемой с моим обычным классом UIViewControllerAnimatedTransitioning. Когда анимация выполнена и отображается представление toView, элементы (кнопки и т. Д.) В нем не могут принимать взаимодействие.При использовании UIViewControllerAnimatedTransitioning кнопки toView не могут взаимодействовать с
Обычай код класса выглядит так:
- (NSTimeInterval)transitionDuration:(id<UIViewControllerContextTransitioning>)transitionContext
{
return 1.0;
}
- (void)animateTransition:(id<UIViewControllerContextTransitioning>)transitionContext;
{
UIViewController *fromViewController = (UIViewController *)[transitionContext viewControllerForKey:UITransitionContextFromViewControllerKey];
UIViewController *toViewController = (UIViewController *)[transitionContext viewControllerForKey:UITransitionContextToViewControllerKey];
CGRect finalFrameForVC = [transitionContext finalFrameForViewController:toViewController];
UIView *containerView = [transitionContext containerView];
CGRect bounds = [[UIScreen mainScreen] bounds];
toViewController.view.frame = CGRectMake(0, 0, bounds.size.width, 0);
[containerView addSubview:toViewController.view];
[UIView animateWithDuration:[self transitionDuration:transitionContext] delay:0.0 usingSpringWithDamping:1.0 initialSpringVelocity:0.0 options:UIViewAnimationOptionCurveLinear animations:^{
fromViewController.view.alpha = 0.5;
toViewController.view.frame = CGRectMake(0, 0, finalFrameForVC.size.width, finalFrameForVC.size.height);
} completion:^(BOOL finished) {
fromViewController.view.alpha = 0.0;
}];
}
И с точки зрения переход называется так:
- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
if ([segue.identifier isEqualToString:@"showAction"]) {
FiltersViewController *filterView = (FiltersViewController *)segue.destinationViewController;
filterView.transitioningDelegate = self;
}
}
-(id<UIViewControllerAnimatedTransitioning>)animationControllerForPresentedController:(UIViewController *)presented presentingController:(UIViewController *)presenting sourceController:(UIViewController *)source {
self.filtersPresentAnimationController = [[FiltersPresentAnimationController alloc] init];
return self.filtersPresentAnimationController;
}
Любая идея, что я делаю неправильно? Он отлично работает, когда я удаляю идентификатор segue из segue.