2012-02-22 3 views
0

내 응용 프로그램이 온라인 맵 (MapKit과 Google지도 사용)과 오프라인지도 (Route-Me 사용)를 모두 지원하기 위해 offlineMapVConlineMapVC이 있습니다.두 개의 다른보기 컨트롤러를 관리하는보기 컨트롤러 사용

이 mapVC의 전환을 관리하고 하나의 개별보기 컨트롤러로보기 컨트롤러를 사용할 수있게하려면 직접 mapVC을 만들었습니다. 이제는 offlineMapVConlineMapVC 인스턴스 변수를 새로운 응용 프로그램 전체에서 사용하는 새로운 mapVC 마녀로 만들었습니다.

먼저 모든 것이 작동하는 것처럼 보입니다. 그러나이 접근 방법을 장시간 사용하는 동안 View Controller를 계층 구조로 사용하여 몇 가지 문제가 발생했습니다. I read this is the wrong way to go.두 개의보기 컨트롤러 간의 전환을 관리하는 올바른 방법은 무엇입니까? 제 질문은 상당히 간단하지만 괜찮은 해결책을 찾을 수 없었습니다.

+1

해결했습니다. 'addChildViewController :'메소드를 사용하여 뷰 컨트롤러 계층을 정의함으로써 문제를 해결할 수 있습니다. – thijsai

답변

2

저는보기 컨트롤러를보기 컨트롤러에 넣었습니다. 그리고 저는 똑같은 일을하는 것보다 훨씬 좋은 프로그래머를 보았습니다. (Rob Napier "iOS 5 프로그래밍 - 한계 극복"을 참조하십시오.) 동일한 뷰와 하위 뷰를 직접 제어하는 ​​뷰 컨트롤러가 두 개 이상있는 경우라면 괜찮습니다.

조나 윌리엄스 (Jonah Williams)가이 기사를 썼기 때문에 iOS 5는 사용자 지정 컨텐츠보기 컨트롤러를 사용하여보기 컨트롤러 계층 구조를 공식화했다고 생각합니다. mapVC를 사용자 정의 컨텐츠보기 컨트롤러로 간주하고 onlineMapVC 및 offlineMapVC를 자식보기 컨트롤러로 구현할 수 있습니다.

(애플 문서 링크는 문서에 대한 구글 "사용자 지정 내용보기 컨트롤러"그래서, frequenctly 변경하는 경향이있다.)

당신은 당신이 무엇을 의미하는지에 좀 더 컨텍스트를 제공 할 수있는 경우 "두 개의 뷰 컨트롤러 사이의 전환"에 의해 그 당신의 질문에 대답하는 데 도움이 될 것입니다. 일반적으로 한 번에 하나 이상의보기 컨트롤러가 활성화되어 있습니다. 나는 그들 사이를 전환하지 않는다. (저는 같은 어플리케이션에서 네비게이션과 탭 바 컨트롤러를 사용 합니다만, 당신이 어떻게 다른 질문을하고 있는지를 알고 있다고 가정합니다. 당신의 케이스가 무엇인지 명확하지 않습니다.)

+0

빠른 답장을 드리기 위해 onlineMapVC 및 offlineMapVC보기를 mapVC보기에 추가하거나 제거하여보기 컨트롤러간에 전환합니다. – thijsai

관련 문제