2011-09-30 6 views
1

저는 UITabBarController를 가지고 있습니다. 하나의 탭은 UINavigationController이며, 여기서 rootViewController는 UIViewController의 하위 클래스입니다. 내 rootViewController에서 viewDidLoad에서 세 개의 ViewController 중 첫 번째를 푸시합니다. 어떤 UISegmentedControl이 눌려 졌는지에 따라, 이전 뷰를 띄우고 UISegmentedControl에 해당하는 viewController를 푸시합니다. 이것은 대부분의 경우 작동합니다.UINavigationController, rootViewController with UITabBarController

문제는 현재 탐색 계층 구조에있는 경우 동일한 탭을 다시 누르면 (현재보고있는 탭), 현재 ViewController가 스택에서 팝되어 rootViewController로 돌아갑니다. 왜 이런 일이 일어나고 있는지 모르겠습니다. 나는 popViewController가있는 곳을 하나 밖에 가지고 있지 않으며 거기에 중단 점을 설정하고 결코 호출되지 않습니다. 그래서 내 가정은 내가 그 탭에있을 때 UITabBarController 탭을 선택하면, 그것은 rootViewController로 돌아갑니다. 그 맞습니까? 이 문제를 해결하기 위해 할 수있는 일이 있습니까? 감사.

답변

0

설명하는 기능은 tabbarcontroller의 표준입니다. 일부 사용자는 사용하는 데 익숙하며 사용하지 않으면 좌절 할 수 있습니다.

그러나 tabBarController : shouldSelectViewController 대리자 기능을 사용하는 것이 가능합니다. 이 함수에서, 선택하고자하는 뷰 컨트롤러가 이미 표시된 컨트롤러와 일치하는지 확인할 수 있습니다. 그렇다면 허용하지 마십시오.

관련 문제