2014-11-13 6 views
0

20 개가 넘는 장면으로 스토리 보드가 있습니다. 나는이 장면들 중 하나에 깊숙이 연결되기를 원한다. 그렇게하기 위해 초기 뷰 컨트롤러에서 필요한 부분을 수행하고 싶습니다.일련의 스토리 보드 세그먼트 수행

그래서보기 컨트롤러 A, B, C와 segues가 다음과 같이 배치되어 있습니다.

->A --segue1--> B --segue2--> C

특수 코드가 B로 추가하지 않고 C A에서 얻을 수있는 가장 쉬운 방법은 무엇입니까? 나는 그대로 유지하기 위해 C에서 B로가는 긴장을 풀 필요가있다. 플래그가 설정되면 나타나는 후 segue2를 수행하는 특수 논리를 B에 추가하는 유일한 해결책이 있습니다. 이 체인이 훨씬 더 깊은 사용 사례가 있기 때문에 이상적이지 않습니다. 차라리 A에서 코드를 가지고 싶습니다. [A performSegues:[@"segue1", @"segue2"]] 같은 것을합니다.

더 좋은 방법이 있나요?

감사합니다.

+0

이들은 모두 'UINavigationController'에 있습니까? 나는. 이것들은 모두 밀어 부스러기입니까? – Undo

+0

아니요. UINavigationController의 viewControllers 배열을 설정하는 것과 관련된 솔루션을 보았습니다.하지만 일부는 모달입니다. – rgbrgb

답변

0

setViewControllerers : animated :를 사용하면 한꺼번에 원하는 모든 뷰 컨트롤러 스택을 빌드 할 수 있습니다. A로 시작한다면, 네비게이션 컨트롤러의 viewControllers 배열의 가변 복사본을 만들고, 필요에 따라 다른 뷰 컨트롤러를 추가 한 다음, 그 배열을 setViewControllers : animated :로 전달할 수 있습니다. animated를 YES로 설정하면 A에서 배열의 마지막 컨트롤러까지의 단일 푸시가 표시됩니다. 당신은 unwind를 사용하여 그 컨트롤러들로 돌아갈 수있을 것입니다.

섹터를 사용하여 컨트롤러에서 모든 전환을 볼 수있는 좋은 방법이 없다고 생각합니다 (보고 싶지 않은 경우).

+0

전이 상황에서 중간 뷰가 보이지 않지만 반드시 모든 것이 내비게이션 컨트롤러에 푸시되는 것은 아닙니다. 위의 예에서 segue1은 "push"이고 segue2는 "show modally"입니다. – rgbrgb

+0

@rgbrgb, 푸시와 프레젠테이션이 섞인다면, 그렇게 할 수있는 좋은 방법이 없다고 생각합니다. 개인적으로 볼 때 일련의 견해가 빠르게 연속해서 푸시되고 표시되는 UI는 좋은 디자인이 아니라고 생각합니다. – rdelmar