2

Tabbar 애플리케이션이 있습니다.내비게이션으로 이동 TabBar 앱에서 컨트롤러의 첫 번째보기

탭바에는 2 개의 탭만 있습니다. 첫 번째 탭은 NavigationController이고 두 번째보기는 NavigationController입니다. 루트 및 상세보기, 두 번째는 TableViewController입니다. 두 번째 작품은 완벽하지만 첫 번째 작품은 완벽하지 않습니다.

처음보기 (NavigationController)부터 시작합니다. 그런 다음 NavigationView 상세보기로 이동하십시오. 그런 다음, 예를 들어 두 번째 탭 표시 줄보기로 이동합니다. 그런 다음 처음으로 돌아가서 루트보기가 아니라 자세한보기를 참조하십시오.

매번 루트보기를 열 수 있습니까?

답변

8

사용과 같이 UITabBarController delegate 방법 tabBarController:didSelectViewController: :

- (void)tabBarController:(UITabBarController *)tabBarController didSelectViewController:(UIViewController *)viewController { 
    if (viewController != tabBarItemForNavControllerTab) { 
    [self.navControllerInFirstTab popToRootViewControllerAnimated:NO]; 
    } 
} 

또한 당신의 UITabBarController을 만들고 당신이 컨트롤러 이름에 맞게 내 조각의 코드를 변경할 때 대리인이 제대로 설정되어 있는지 확인합니다.

+0

클래스에서이 코드를 배치해야합니까? –

+0

@EugeneTrapeznikov UITabBarControllers 상위 컨트롤러 내부. 위임자가 어떻게 작동하는지 잘 모르겠다면 [** 기사 **] (http://thinkvitamin.com/code/ios/ios-design-patterns-delegation-part-2/)를 읽어보십시오. – dom

+0

대리자를 프로그래밍 방식으로 설정할 수 있습니까? self.tabBarController.delegate = self; 괜찮아? –

관련 문제