2012-11-09 5 views
0

vA 및 vB 컨트롤러가 2 개인 탐색 기반 앱이 있습니다.UINavigationBar가 슬라이딩 대신에 튀어 나오고 튀어 오름

vA는 탐색 컨트롤러의 루트보기 컨트롤러이며 전체 컨트롤러이므로이 컨트롤러를 표시하면 탐색 모음이 표시되지 않습니다.

그럼 제가

비주얼 베이직을 사용하여 푸시

[self.navigationController과 pushViewController : VB에서 애니메이션 : YES]; VB에서의 viewDidLoad에에

나는이 있습니다

오른쪽에서 화면을 입력 VB에서의 애니메이션은 이런 식으로 발생
self.navigationController.navigationBarHidden = NO; 
// then I have navigation buttons defined here 

:

내비게이션 바 갑자기
  • VB에서 슬라이드에서 실행 vA에 나타납니다
    1. 오른쪽으로 이동하여 화면을 채 웁니다. 나는 VB에서 튀어 나오게 할 때

    이 뒤에 실행 vA을 보여주는 왼쪽에

    1. VB에서 슬라이드를 발생하는 것입니다.
    2. 현재 navigationBar가 표시된 vA가 표시됩니다. 기억 vA에는 탐색 표시 줄이 없어야합니다. 그런 다음 탐색이 사라지고 vA가 전체 화면으로 크기가 조정됩니다.

    이 애니메이션은 은혜가 없으며, 끔찍하고, clunky하고 틀립니다.

    내가 원한 것은이 네비게이션이 vB와 함께 들어가고 나가는 것입니다.

    어떻게하면됩니까?

    감사합니다.

  • 답변

    1

    다음을 시도해보십시오 :

    - (void)viewWillAppear:(BOOL)animated 
    { 
        [self.navigationController setNavigationBarHidden:YES animated:animated]; 
        [super viewWillAppear:animated]; 
    } 
    
    - (void)viewDidDisappear:(BOOL)animated { 
        [self.navigationController setNavigationBarHidden:NO animated:animated]; 
        [super viewDidDisappear:animated]; 
    } 
    // OR viewWillDisappear as mentioned by @RubberDuck 
    

    대신 viewDidLoad에서 탐색 모음을 숨기는, viewWillAppear를 구현하고 viewDidDisappear

    +0

    타이핑 한 후 30 초가 지나면 해결책은 거의 이와 같을 것이라는 것을 깨달았습니다. 당신의 대답은 거의 다 왔으며, 오른쪽은 viewWillDisappear입니다! 감사! – SpaceDog

    2

    당신은 당신이 VCB의있는 viewDidLoad에 사용 된 방법의 애니메이션 버전을 사용할 필요가 :

    [self.navigationController setNavigationBarHidden:NO animated:YES]; 
    

    편집 후 : viewDidLoad 또는 viewWillAppear에서 정상적으로 작동하는 것으로 보입니다 (보기는 아님). DidAppear). 되돌아 가려면 viewWillDisappear에 있어야합니다.

    관련 문제