2012-10-26 8 views
2

두 개의 서로 다른보기 인 A &을 제어하는 ​​두 개의 탭이 포함 된 하나의 기본 TabBarController가있는 응용 프로그램이 있습니다. A보기는 scrollView이고 B보기는 TableView입니다. 처음에 앱을로드하면보기 A의 스크롤보기가 비어 있습니다.Modal Segue iOS 이후 동일한 TabBarController 인스턴스 여러 개

내 scrollView에 페이지를 추가하려면 다음과 같이 설정해야합니다. B를 보면서 navigationBar가 포함 된보기에 하나의 모달 구획을 수행합니다. 네비게이션 바에는보기를 닫는 데 사용하는 '취소'단추 하나만 있습니다. 그렇지 않으면, 사용자는 이미지를 클릭하여 다른 모달 구획을 다른보기로 수행해야합니다. 이 뷰에는 탐색 모음이없고 'DONE'버튼이 하나 있습니다.이 버튼을 사용하면 초기 tabBarController로 모달 전환을 수행 할 수 있습니다.

여기에 문제가 있습니다. '완료'를 누르면 페이지가 오류없이 scrollView에 추가됩니다. 그러나, 나는 지금 메모리에 떠 다니는 동일한 tabBarController의 두 인스턴스가 있다고 믿는다. scrollView에 포함 된 뷰를 다른 버튼으로 잡으려고 할 때 viewDidLoad 및 viewDidAppear 동안 꽉 찼음에도 불구하고 이제는 비어 있다고 알려줍니다.

초기 tabBarController보기를 제거하려면 어떻게해야합니까? 그렇지 않으면 내가 이미 할당 한 tabBarController로 어떻게 다시 이동할 수 있습니까? 어떤 도움이라도 대단히 감사하겠습니다! 감사!

답변

2

원본보기 컨트롤러로 다시 설정해서는 안됩니다. 오히려 현재 뷰 컨트롤러를 애니메이션 해제하고 원래 tabBarController를 표시해야합니다. 다시에서 segueing 된 내부보기

는 추가 :

tabBarController *tabs = (tabBarController*)[[self presentingViewController]presentingViewController]; 
tabs.selectedViewController = [tabz.viewControllers objectAtIndex:0]; 

[[[self presentingViewController] presentingViewController] dismissViewControllerAnimated:YES completion:nil]; 

그런 다음 당신은보기 A가 나타나고 여전히 같은 할당을 사용하는 것입니다.

관련 문제