How long is the animation of the transition between views on a UINavigationController? How long is the animation of the transition between views on a UINavigationController? ios ios

How long is the animation of the transition between views on a UINavigationController?


In iOS 7 and later you can have exact value by setting the UINavigationController delegate and using the method:

- (void)navigationController:(UINavigationController *)navigationController      willShowViewController:(UIViewController *)viewController                    animated:(BOOL)animated {    NSTimeInterval duration = [viewController.transitionCoordinator transitionDuration];}  

This is future proof method if the defult duration will ever change. At the moment it's value is 0.35 second.


There's no constant containing this value. However, using the following UINavigationControllerDelegate methods:

- (void) navigationController:(UINavigationController *)navigationController willShowViewController:(UIViewController *)viewController animated:(BOOL)animated{    startTime = [[NSDate date] retain];}- (void) navigationController:(UINavigationController *)navigationController didShowViewController:(UIViewController *)viewController animated:(BOOL)animated{    NSLog(@"Duration %f", [[NSDate date] timeIntervalSinceDate: startTime]);}

... I can see that the duration is approx 0.35 seconds

Interestingly, different parts of the views take different times to transition into place. See this great blog post for more details:

http://www.iclarified.com/12396/a-closer-look-at-iphone-transition-animations