2017-07-19 4 views
0

J'ai une animation de suppression personnalisée qui utilise UIPercentDrivenInteractiveTransition et UIViewControllerAnimatedTransitioning. Il est initié par un segue dérouler et le délégué de transition est mis en place dans prepareForSegue:.Déterminez quand l'animation de segue de déroulement est terminée

Dans mon contrôleur de vue de présentation, l'IBAction de déroulement continue d'être appelée dès que je commence le segue, au lieu de quand le segue est terminé. Ceci est problématique car mon animation de rejet est guidée par les gestes, donc nous ne savons pas combien de temps cela prendra pour terminer.

Y at-il un moyen de savoir quand le segue a terminé son animation?

Ni viewWillAppear: ni viewDidAppear: ne semblent être appelés au moment de l'achèvement, je suppose que c'est parce que le segue est un segue de déroulement.

Répondre

0

attraper l'animation lorsque vous avez terminé, vous pouvez l'utiliser.

- (void)perform { 
     [CATransaction begin]; 
     [[self sourceViewController] presentViewController:[self destinationViewController] animated:YES completion:nil]; 
     [CATransaction setCompletionBlock:^{ 
      //whatever you want to do after the animation 
     }]; 
     [CATransaction commit]; 
    }