Frage

Ist es möglich, pushViewController Animation aussehen wie presentModalViewController zu zeigen, aber das hat Hintergrund Funktionalität von pushViewController?

War es hilfreich?

Lösung

Versuchen Sie diese:

UIViewController *yourViewController = [[UIViewController alloc]init];

[UIView  beginAnimations: @"Showinfo"context: nil];
[UIView setAnimationCurve: UIViewAnimationCurveEaseInOut];
[UIView setAnimationDuration:0.75];
[self.navigationController pushViewController: yourViewController animated:NO];
[UIView setAnimationTransition:UIViewAnimationTransitionFlipFromRight forView:self.navigationController.view cache:NO];
[UIView commitAnimations];

Andere Tipps

Wenn Sie möchten, auf eine Fade-Animation, dieser Ansatz funktioniert.

CATransition* transition = [CATransition animation];
transition.duration = 0.3;
transition.type = kCATransitionFade;
transition.subtype = kCATransitionFromTop;

[self.navigationController.view.layer addAnimation:transition forKey:kCATransition];
[self.navigationController pushViewController:gridController animated:NO];

Für die Anzeige PushViewConttroler Animation als Geschenk Code unten arbeitet,

Push

 ViewController *VC = [self.storyboard instantiateViewControllerWithIdentifier:@"ViewController"];
 CATransition* transition = [CATransition animation];
 transition.duration = 0.4f;
 transition.type = kCATransitionMoveIn;
 transition.subtype = kCATransitionFromTop;
 [self.navigationController.view.layer addAnimation:transition
                                                    forKey:kCATransition];
 [self.navigationController pushViewController:VC animated:NO];

Und für POP

CATransition* transition = [CATransition animation];
transition.duration = 0.4f;
transition.type = kCATransitionReveal;
transition.subtype = kCATransitionFromBottom;
[self.navigationController.view.layer addAnimation:transition
                                            forKey:kCATransition];
[self.navigationController popViewControllerAnimated:NO];

Es gibt 1 Problem aber, dass seine Anzeige Licht schwarzer Hintergrund, wenn sein Gehen, oben / unten,
Die Arbeit an, dass, sobald sie getan nach neuem Code hier.

Alles in Xamarin Versuch (C #) Äquivalent-Code Von Antwort von @hardik Thakkar oben, hat die Ausgabe von Schwarz während der Animation Backgound, alles gut ausruhen.

Für POP

    CATransition transition = CATransition.CreateAnimation();
    transition.Duration = 0.4;
    transition.Type = CAAnimation.TransitionReveal;
    transition.Subtype = CAAnimation.TransitionFromTop;
    this.NavigationController.View.Layer.AddAnimation(transition, nameof(CATransition));

Für Push-

    CATransition transition = CATransition.CreateAnimation();
    transition.Duration = 0.4;
    transition.Type = CAAnimation.TransitionReveal;
    transition.Subtype = CAAnimation.TransitionFromBottom;
    this.NavigationController.View.Layer.AddAnimation(transition, nameof(CATransition));

Sie sollten etwas zu tun, wie betrachten:

ViewController *myVC = [[ViewController alloc] initWithFrame:OFF_SCREEN];
[navigationController pushViewController:myVC animated:NO];

Dabei gilt OFF_SCREEN einige CGRect unter dem Bildschirm ist, wie (0, 481, 320, 480). Dann einen Animationsblock der Viewcontroller Ansicht des frame.origin anpassen sein (0, 0). Sie würden wahrscheinlich wollen den belebten Block in viewDidLoad oder viewDidAppear tun.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top