4

하나의보기 컨트롤러에서 흐림 효과가있는보기 컨트롤러 보기 컨트롤러로 사용자 지정 푸시 전환 (UINavigationController)을 만듭니다.iOS 7 투명한 뷰 컨트롤러로의 사용자 지정 푸시 전환, 뷰 컨트롤러보기가 아래에 표시되도록 유지

"에서"보기 컨트롤러가 새로 밀어 넣기 된보기 컨트롤러 아래에 계속 표시되도록하려고합니다.

새 뷰 컨트롤러를 모달로 표시하면 (modalPresentationStyle = UIModalPresentationCustom 사용)이 효과를 얻을 수 있지만 탐색 컨트롤러에서이 작업을 수행 할 수있는 방법이 있습니까?

내가 직면하고있는 문제는 전환 후보기 컨트롤러의보기가 컨테이너에서 제거된다는 것입니다.

+0

시스템 기본값으로이 작업을 수행 할 수있는 방법이 있는지 잘 모르겠습니다. 아래에 표시되도록하려면 사용자 지정 코드를 사용하는 것이 가장 좋습니다. – user2277872

답변

5

새로운 iOS 7 전환 API를 사용하면 animation이 완료되면 containerView가 개인적으로 관리되므로 toViewController.view 아래에서 fromViewController.view를 유지할 수 없습니다.

이런 일이 당신이 그러나 할 수있다 ...

UIView *containerView = [transitionContext containerView]; 

UIViewController *fromViewController = [transitionContext viewControllerForKey:UITransitionContextFromViewControllerKey]; 
UIViewController *toViewController = [transitionContext viewControllerForKey:UITransitionContextToViewControllerKey]; 

UIView *snapshotView = [fromViewController.view snapshotViewAfterScreenUpdates:NO]; 

[toViewController.view addSubview:snapshotView]; 
[toViewController.view sendSubviewToBack:snapshotView]; 

나는 마지막 두 줄은 (뒷면에 스냅 샷을 전송) 작동 방법을 너무 잘 모르겠어요하지만 당신은을 사용할 수 있습니다 스냅 샷을 처리하고 나머지 내용 뒤에 있는지 확인할 수있는 사용자 정의 UIViewController 하위 클래스입니다.


다시 읽은 후 .. 당신은 어쩌면 ... 내 위의 솔루션은 toViewController 전체 화면 것을 요구한다 ... 당신은 전체 화면 프리젠 테이션보다는 모달의 형태를 달성하고자하는 느낌이 그런 다음 모달 콘텐트를 실제로 저장하는 toViewController에 하위 뷰 컨트롤러를 추가 할 수 있습니까?