Marcus Zarra SDK posta listesindeki bu büyük bir çözüm yayınladı:
UIViewController *controller = [[[MyViewController alloc] init] autorelease];
UIViewAnimationTransition trans = UIViewAnimationTransitionCurlUp;
[UIView beginAnimations: nil context: nil];
[UIView setAnimationTransition: trans forView: [self window] cache: YES];
[navController presentModalViewController: controller animated: NO];
[UIView commitAnimations];
saygısız ve sayfa curling için geçişler vardır.
UIViewController *controller = [[[MyViewController alloc] init] autorelease];
controller.view.alpha = 0.0;
[navController presentModalViewController: controller animated: NO];
[UIView beginAnimations: nil context: nil];
controller.view.alpha = 1.0;
[UIView commitAnimations];
Ancak, ne muhtemelen istediğiniz bir crossfade olduğu ya da en azından bir zincirleme geçiş: Eğer solma ayarlanır varsa, yeni görünümün alfa ayarlamayı deneyebilirsiniz. UINavigationController yeni bir görünüme geçtiğinde, eski olanı kaldırır. Bu etki için, mevcut UIViewController'ınıza yeni bir görünüm eklemekten ve alfalarını zamanla düşürmekten daha iyi olur.
Not: Uygulamanızda değilseniz, [kendi pencere] temsilci çalışmaz. Self.view.window'u kullanın, buna işaret etmek için user412500'ün gönderdiği teşekkürler.
iPhone 3.0+ için
Bu eski! Aşağıdaki Simo Salminen cevabına bakınız! MrDatabase bu –