2012-12-06 6 views
5

내 탐색보기 컨트롤러가 다른보기 컨트롤러를 밀 때 "슬라이드를 오른쪽에서 왼쪽으로"전환하려고합니다. 스토리 보드에서 옵션을 찾았지만 작동하지 않는 것 같습니다. 전환 스타일은 여전히 ​​동일합니다.iOS push style segue transition

transition

그래서, 내 질문은, 그것은 가능하다 푸시 스타일을 만들기 위해 : 전이가 모달 스타일 SEGUE위한 것처럼 보이지만 스토리 보드에서 대상 뷰 컨트롤러를 클릭하면 나는이 발견 세그 전이 다르게 보입니까? 그렇다면 어떻게?

답변

2

푸시 전환을하려면보기를 연결하는 UINavigationController를 사용해야합니다. 이것들은 하나의 오프 전환에 대한 모달 전환 옵션입니다.

동일한 토큰으로, 적어도 스토리 보드에서는 UINavigationController를 이미 사용하고 있다면 푸시 이외의 다른 기능을 사용할 수 없습니다.

이 제한 사항을 해결하는 가장 쉬운 방법은 코드에서 수행하고 UIView Animation 또는 CAAnimation에 래핑 된 애니메이션없이 푸시하는 것입니다.

6

사용자 지정 Segue에서 CATransition을 사용하여 모든 종류의 전환을 수행 할 수 있습니다. 다음은 샘플 코드입니다.

-(void)perform { 

__block UIViewController *sourceViewController = (UIViewController*)[self sourceViewController]; 
__block UIViewController *destinationController = (UIViewController*)[self destinationViewController];      

CATransition* transition = [CATransition animation]; 
transition.duration = .25; 
transition.timingFunction = [CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseInEaseOut]; 
transition.type = kCATransitionPush; //kCATransitionMoveIn; //, kCATransitionPush, kCATransitionReveal, kCATransitionFade 
transition.subtype = kCATransitionFromLeft; //kCATransitionFromLeft, kCATransitionFromRight, kCATransitionFromTop, kCATransitionFromBottom 



[sourceViewController.navigationController.view.layer addAnimation:transition 
              forKey:kCATransition]; 

[sourceViewController.navigationController pushViewController:destinationController animated:NO];  


} 

당신은 자세한 내용 http://blog.jambura.com/2012/07/05/custom-segue-animation-left-to-right-using-catransition/

+0

큰 응답 동생이 링크를 방문 ... 내가 :-) 오랜 시간 동안 그것을 보았다 –