2009-07-14 5 views
1

나는 다음 질문이 있습니다탭 바 컨트롤러

UITabBarController가 내가 탭 표시 줄의 항목을 클릭하면 내 문제가

....Some UINAvigationControllers.... 

*(1) UINavigationController 

     UIViewController (UItableView) - When select one row it goes to...(by push) 

        UIViewController (UItableView) 

, 나는 참조 : 내 프로젝트에서

을 나는 다음은이 마지막으로 viewController 뷰를 보았고, * (1) 첫 번째 뷰를 다시로드 할 필요가 없습니다.

내가 탭 바 항목을 클릭 할 때마다 sth를 쓰려면이 탭 표시 줄 항목의 첫 번째보기를 다시로드해야합니다.

감사합니다.

답변

0

viewWillAppear 또는 viewDidAppear 메서드에서보기를 다시로드하려면 콜백 코드를 넣으십시오. 이들은 뷰 컨트롤러가 화면에 뷰를 표시 할 때마다 호출됩니다. 또한 복사하여 실제 코드를 붙여 주시기

, 그것은 일반적으로 우리의 말 : 물건 쉽게

2

내가 제대로 질문을 이해한다면, 당신이 때 루트 요소에 대한 탐색 컨트롤러를 반환하기 위해 노력하고있다 탭 표시 줄 항목이 선택됩니다.

이렇게하려면 UITabBarController의 대리인이 될 개체 (예 : 응용 프로그램 대리인이지만 다른 개체가 될 수 있음)를 설정하십시오. (응용 프로그램 대리자를 사용하는 경우 두 가지 이상의 대리자가됩니다.) 그런 다음 tabBarController:didSelectViewController: 메서드를 구현합니다. 이 방법에서는 선택된 뷰 컨트롤러 (NavigationController 여야 함)에게 루트보기 컨트롤러로 돌아가도록 알려줍니다.

이와 비슷한 것. 당신의 .xib 파일에서

- (void)tabBarController:(UITabBarController *)tabBarController didSelectViewController:(UIViewController *)viewController { 
    [viewController popToRootViewControllerAnimated:NO]; 
} 

을하여 AppDelegate에에 TabBarController에 대한 대리자를 설정 : 당신의 AppDelegate.m 클래스에이 구현을 추가합니다. 프로그래밍 방식으로 tabBar를 만드는 경우에는 프로그래밍 방식으로 TabBar를 만들어야합니다.

viewWillAppear 메서드 또는 다른 방법으로 탐색에있는 뷰 컨트롤러에서이 작업을 수행하려는 것으로 생각됩니다. 컨트롤러가 올바른 접근법이 아닙니다. 이 메서드는 네비게이션 컨트롤러에서 수행 할 메서드이며 탭 표시 줄의 대리자에 의해 감지됩니다.

관련 문제