2013-06-21 3 views
0

내비게이션 컨트롤러가있는 두 개의 다른 테이블보기가있는 두 개의 탭 막대 항목이 있습니다. tab1 --- table1을 (를) 클릭하여 열면 ... 좋습니다. 그러나 내가 table1을 선택했을 때 다른 뷰 (테이블이 뷰를 선택 했음)로 간다 .... 모든 것이 좋다.UITabBar 항목 선택이 작동하지 않습니다.

하지만 문제는 여기

내가 TAB2를 클릭하고 때 ---- 테이블이 열려있다 .... 좋은

입니다.

그러나 다시 tab1을 클릭하십시오 ------ 그것은 table1을로드하지 않습니다 ....로드 중입니다 (테이블을 선택보기)보기입니다. 마지막으로 내가 거기 떠났을 때.

프로그래밍으로 tab1을 클릭하면 table1 ----을 열려고합니다.

도움이 내게 당신은 탭 표시 줄 컨트롤러와 탭 표시 줄의 항목에서 탐색 컨트롤러를 사용하는 경우 예상되는 동작입니다

답변

1

. 사용자는 탭이 뷰의 상태를 유지할 것으로 기대합니다. didSelectViewController : 방법

여전히 사용자가 다시 탭으로 갈 때 다시 탐색 컨트롤러의 루트 뷰 컨트롤러에 갈 수있는 응용 프로그램을 실행하려면

, 당신은 UITabBarControllerDelegate tabBarController을 구현할 수 있습니다. 이 대리자 메서드의 기능은 다음과 같습니다.

사용자가 탭 모음에서 항목을 선택했음을 대리인에게 알립니다.

그런 UINavigationController라는 popToRootViewControllerAnimated의 메소드를 호출 때 탭에서 사용자 탭. 루트보기 컨트롤러를 제외한 스택에

팝 모든 뷰 컨트롤러와 디스플레이를 업데이트 : 이것은 당신을 도움이 될 것입니다. 예를 들어

:

- (void)tabBarController:(UITabBarController *)tabBarController didSelectViewController:(UIViewController *)viewController 
{ 
    if(viewController == yourNavigationController) { 
     UINavigationController *navigationController = (UINavigationController *)viewController; 
     [navigationController popToRootViewControllerAnimated:NO]; 
    } 
} 
관련 문제