Ich habe eine ViewController können sagen ViewControllerA
und ein ViewController lässt sagen ViewControllerB
.Mit dem UIViewControllerTransitionCoordinator animateAlongsideTransition-Methode
ViewControllerB
wird modal von ViewControllerA
mit einem benutzerdefinierten Übergang dargestellt.
In ViewControllerA:
-(void)buttonClicked...
{
ViewControllerB * controller = [[ViewControllerB alloc] init];
[controller setModalPresentationStyle:UIModalPresentationCustom];
controller.transitioningDelegate = self;
[self presentViewController:controller animated:YES completion:nil];
}
In ViewControllerA -
#pragma mark - UIViewControllerTransitioningDelegate
-
(id<UIViewControllerAnimatedTransitioning>)animationControllerForPresentedController:(UIViewController *)presented
presentingController:(UIViewController *)presenting
sourceController:(UIViewController *)source
{
FadeInWithPopAnimator* fadeInAnimator = [[FadeInWithPopAnimator alloc] init];
return fadeInAnimator;
}
Ich habe eine benutzerdefinierte Animator-Klasse namens FadeInWithPopAnimator
, die die transitionDuration und animationTransition Methoden implementiert.
Ich möchte ein paar Ansichten auf dem vorgestellten Viewcontroller - ViewControllerB
, 0,2 Sekunden nach dem Beginn der Übergangsanimation animieren.
Ich habe die Dokumente online gelesen und es sieht aus wie mit einem TransitionCoordinator ist der Weg zu gehen. Aber wo sollte ich den Code setzen?
1) Beim Aufruf des presentViewController in ViewControllerA
?
2) In der Animator-Klasse?
3) In viewWillAppear von ViewControllerA
?
Ich habe ein paar Dinge ausprobiert, aber es gibt mir keine Ergebnisse und Beispiele sind schwer zu finden.