2011-11-22 3 views
0

내 문제 :IOS 최고의 practices- 탐색 및 탭 컨트롤러와 푸시/팝

내 응용 프로그램이 로그인하는 사용자가 필요합니다, 그래서 보여 첫 번째보기는 로그인 한 도면이다. 로그인 한 상태에서 탭 표시 줄 컨트롤러 인 앱보기를 표시합니다. 이 탭 중 하나는 계정 정보 + 로그 아웃입니다. 로그 아웃 할 때, 로그인 화면으로 돌아가고 싶습니다.

내 솔루션 :

루트보기 기본보기를 보유 탐색 컨트롤러입니다. 기본보기는 투명하며 로그인하지 않았습니까? 계정 화면을 스택 위로 밀어 넣습니다. 로그인 한 경우 탭 컨트롤러보기를 스택으로 누릅니다. 탭 컨트롤러의 각 탭은 탐색 컨트롤러입니다. 계정 탭을 클릭하면 계정보기의 계정보기가 스택으로 푸시됩니다. 계정보기는 2 개보기 팝업 로그 아웃 버튼이 있습니다 (작동하지 않음) :

내가 최고 수준에있는 탐색 컨트롤러 인 :

// Go to main view (2 views up) to show default login screen (as we won't be logged in anymore) 
    UINavigationController *navController = self.navigationController; 
    [navController popViewControllerAnimated:NO]; 
    [navController popViewControllerAnimated:YES]; 

은 내가 생각하는 문제입니다 탭 컨트롤러의 하위 레벨 탐색 컨트롤러와 같지 않습니다.

내 문제는 상당히 일반적인 것처럼 보일 수 있지만 내 솔루션은 정말 까다로운 것처럼 보입니다. 이것이 최선의 방법은 아닙니다! 어떤 충고?

답변

0

다음과 같이 시도해보십시오. 그것은 복잡한 것처럼 보이지만 그것을 시도해 봅시다.

[self.navigationController popViewControllerAnimated: NO]; 
[self.tabBarController.navigationController popViewControllerAnimated: YES]; 
+0

괜찮습니다. 스택 상단에 탭보기를 붙이고 화면 아래쪽에 탭이있는 상태로 살기 만하면 시작할 때 여러 개의 탐색 컨트롤러를 사용하는 것보다 쉽게 ​​숨길 수 있습니다. – nflacco

관련 문제