Odpowiedz

46

Spróbuj tego:

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]; 
+0

Dzięki! To było naprawdę bardzo pomocne! –

+1

ładny przykład, to pomoże wielu z nas, thks xCode :) –

+1

Każdy pomysł, jak to zrobić z przejściami w stylu iOS 8? – SleepsOnNewspapers

0

Należy rozważyć robi coś takiego:

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

gdzie OFF_SCREEN pewne CGRect poniżej ekranu, jak (0, 481, 320, 480). Następnie użyj bloku animacji, aby wyregulować ramkę widoku kontrolera view.origin na (0, 0). Prawdopodobnie chciałbyś zrobić animowany blok w viewDidLoad lub viewDidAppear.

+0

Kontrolery widoku nie mają inicjatora "initWithFrame:" –

54

Jeśli chcesz animacji blaknięcie, takie podejście działa.

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]; 
+1

Działa jak mistrz! Miłe przejście. Dzięki! –

+0

Hej, który działał świetnie dla mnie, wielkie dzięki! –

+0

Działa pięknie! Wielkie dzięki! – Amit

21

do wyświetlania animacji PushViewConttroler jak Present poniżej kod działa,

Dla 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]; 

I 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]; 

Jest 1 problem tho ugh, że jego wyświetlacz jest jasny na czarnym tle, gdy idzie w górę/w dół,
Praca nad tym, Jak tylko zostanie zrobione, dodaj nowy kod tutaj.

+3

Oprócz push dodałeś także pop. Słuszna uwaga! –

+0

Ale nadal nie ma krzywej animacji ... –

+0

@Julian, Nie otrzymasz punktu. – Dilip