2011-09-30 6 views

답변

16

이 값을 포함하는 상수가 없습니다. 그러나 다음 UINavigationControllerDelegate 방법을 사용하여 :

- (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]); 
} 

... 난 시간은 약 0.35 초

는 흥미롭게도, 전망의 다른 부분이 제자리에 전환 다른 시간을 가지고 있음을 알 수있다. 아이폰 OS 7에서

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

+0

위대한 블로그 게시물! 링크를 가져 주셔서 감사합니다. – morais

+29

iOS 8에서는 애니메이션 지속 시간이 '0.2 초'로 표시됩니다. (이제 상수가 있습니다 :'UINavigationControllerHideShowBarDuration'.) – zekel

+1

이 주석은 답이되어야합니다. 여러 번 도움이되었습니다. – fpg1503

14

그리고 나중에는 방법 UINavigationController 대리자를 설정하고 사용하여 정확한 값을 가질 수 있습니다 : 자세한 내용은이 훌륭한 블로그 게시물을 참조 이것은 미래

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

입니다 불일치 지속 시간이 언제 변할 지 증명 방법. 현재 가치는 0.35 초입니다.