2017-04-25 1 views
0

우리는 세 개의보기 컨트롤러 (A, BC)가 있다고 가정합니다. AB을 표시 한 루트보기 컨트롤러이며 B은 차례로 C을 표시합니다. B이 표시되지 않는 C에서 A으로 사용자 지정 되감기 세그먼트를 수행하려면 어떻게해야합니까?여러보기 컨트롤러를 푸는 사용자 지정 UIStoryboardSegue

A - B - C 

UIStoryboardSegue은 (이 예에서 B) 사이에서 뷰 컨트롤러에 대한 소스 뷰 컨트롤러 기준뿐만 아니라 목적지 뷰 컨트롤러하지만 하였는가? C에서 원하는 애니메이션을 모두 수행 할 수 있지만 어떤 식 으로든 B에 어떤 영향을 미칠 수 있는지는 알 수 없습니다.

목표는 왼쪽에서 오는 A을 가지고 그래서 모두 소스 및 대상은 수평으로 서로 옆에 강타하는 동안 오른쪽에있는 루트 (BC)를 제외하고 모두 기각하는 것입니다. B은 애니메이션의 어느 시점에서도 표시되어서는 안됩니다.

필자의 예제에서는 두 개의 뷰를 닫을 뿐이지 만 임의의 수의 뷰에 적용 할 수있는 솔루션을 찾기를 희망합니다. 또한 UINavigationController을 사용하여이 문제를 해결하는 데 관심이 없습니다. 나는 단순히 B을 해고하려했으나 실제로는 C도 기각했지만 애니메이션 중에는 BC을 볼 수 있습니다.

+0

당신은 긴장을 풀고 Segues 좀 걸릴 수 있습니다. 다음은 [iOS Storyboards의 엉성한 풀기] (https://spin.atomicobject.com/2014/10/25/ios-unwind-segues/)의 예입니다. – aNa12

+0

질문은 긴장을 푸는 것에 관한 것입니다. –

+0

예제에서와 같이 시도해 보셨습니까? – aNa12

답변

0

아래로 컨트롤러를 dissmiss 수 있습니다

self.presentingViewController?.presentingViewController?.dismiss(animated: true, completion: nil) // you need to track viewcontroller's stack hierarchy 
+0

중간보기를 드러내지 않으면 서 사용자 지정 해제 애니메이션을 수행 할 수 없습니다. 질문의 마지막 문장에서 언급 한대로 애니메이션. –

+0

먼저 해 보셨습니까? – KKRocks

+0

다시 말하지만, "나는 단순히 C를 닫는 B를 해고하려했지만 애니메이션 중에는 B와 C 둘 다 볼 수 있습니다." –

관련 문제