0

내 응용 프로그램은 탭 기반 응용 프로그램이며 일부 탭에는 탐색 컨트롤러가 있습니다.탭 navigationcontroller, 첫 번째보기에서 시작

enter image description here

내가보기에 이동 한 경우, 내가 (탐색)에서 두 번째보기에있어 및 탭을 변경할 때 다시 탭을 클릭하면, 내가 같은 두 번째보기에서 시작 끝마친. 탭을 변경할 때

그래서, 내가 원하는,의

popToRootViewControllerAnimated: 

효과입니다. 그래서 저는 항상 첫 번째 관점에서 시작할 것입니다.

어떻게하면됩니까?

감사합니다.

나는, 바트 틀리는의 대답은 다음과 같은 내 프로젝트에 내 MainTab.h을 몇 가지 코드를 추가

#import <UIKit/UIKit.h> 

@interface MainTab : UITabBarController <UITabBarControllerDelegate,UITabBarDelegate> 

@end 

MainTab.m :

- (void)viewDidLoad 
    { 
    [super viewDidLoad]; 

    NSLog(@"this class is loaded"); 
    self.tabBarController.delegate = (id)self; 
    [self setDelegate:self]; 
} 


-(void) tabBarController:(UITabBarController *)tabBarController didSelectViewController:(UIViewController *)viewController 
{ 
    NSLog(@"changing tab"); 
    if ([viewController isKindOfClass:[UINavigationController class]]) { 
    [(UINavigationController*)viewController popToRootViewControllerAnimated:YES]; 
    } 
} 

해결! 코드를 사용하여 내 게시물을 편집합니다.

고마워요!

+0

대신의 솔루션으로 질문을 편집, 그것은 발견하는 것이 더 쉽다 있도록 자세한 사항 다른 답변 추가 - 질문은 별도의 유지를 답변에서. =) –

답변

1

는 UITabBarController가에 대한 대리자를 설정하고이 대리자 메서드를 구현 :

-(void) tabBarController:(UITabBarController *)tabBarController didSelectViewController:(UIViewController *)viewController 
{ 
    if ([viewController isKindOfClass:[UINavigationController class]]) { 
    [(UINavigationController*)viewController popToRootViewControllerAnimated:YES]; 
    } 
} 
관련 문제