2014-09-30 3 views
0

주어진 디자인에 따라 뷰 컨트롤러를 설정하는 가장 좋은 방법을 찾으려고합니다. 내 앱은 전체 화면 로그인 화면으로 시작합니다. 사용자가 로그인 한 후 다음보기가 3 탭 화면입니다. 3 탭보기 중 하나에서 아무 컨트롤을 클릭하면 전체 화면보기 컨트롤러로 이동해야합니다.컨트롤러 설정보기

이제 내가 직면하는 문제는 입니다. 1) 지침에 따라 TabBarController를 NavigationController에 넣지 말아야한다고 말합니다.이 경우에는해야합니다. 2) 또한 각 TabBarView의 ViewController를 탐색 컨트롤러로 설정하면 맨 아래에 항상 볼 필요가없는 탭 막대가 표시되므로 전체 화면 공간을 확보하지 못합니다.

생각과 조언을 기쁘게 생각합니다.

답변

0

내가 설정하는 방법은 모든 내부보기 컨트롤러를 관리하는 전역 컨테이너보기 컨트롤러를 갖는 것입니다. 예 :

  1. 응용 프로그램 출시를 용기/시작 뷰 컨트롤러 루트 뷰 컨트롤러 :

    ============================= 
    = Container View Controller = 
    ============================= 
        |    | 
    ------------ ----------- 
    - Login VC - - Main VC - 
    ------------ ----------- 
    

    다음과 같이 될 것이다 앱 시작에 대한 워크 플로는 다음과 같습니다.

  2. 컨테이너보기 컨트롤러는 로그인 상태를 결정합니다 (로딩 표시기 등을 표시합니다.).
  3. 올바른보기 컨트롤러로 전환.

사용자가 로그인하지 않은 경우 로그인보기 컨트롤러로 전환 할 수 있습니다. 거기에서 대리자 콜백이나 사용자가 로그인하면 전달되는 알림에 가입 할 수 있습니다. 해당 메시지를 받으면 로그인 상태를 다시 확인하고 적절하게보기 컨트롤러를 표시 할 수 있습니다.

로그인 콜백을 받거나 시작한 후 사용자가 로그인 한 경우 기본보기 컨트롤러 만 표시하십시오.

로그 아웃은 로그인과 동일한 방식으로 작동합니다. 컨테이너보기 컨트롤러에 알림을 보내고 그에 따라보기 컨트롤러를 관리하게하십시오.

0

저는 개인적으로 초기보기 컨트롤러로 tabBarController를 사용합니다. 사용자가 로그인하지 않은 경우 즉시 로그인보기 컨트롤러를 표시 (모달)합니다. 사용자가 로그인하면 로그인 컨트롤러를 닫고 tabBarController로 돌아갑니다. 탐색 컨트롤러의 각 탭에 대한보기 컨트롤러를 래핑하지만 tabBar를 숨기려면 hidesBottomBarWhenPushed으로 설정하십시오.

관련 문제