2016-08-07 8 views
1

세 개의보기 컨트롤러가 있으며 탐색 컨트롤러에 포함되어 있습니다. enter image description here신속한 내비게이션 막대 동작

내가 첫 번째보기 컨트롤러에서 탐색 모음을 숨기려면 :

아키텍처는 다음과 같다. 이를 위해

난 (제 1 제어기)의 viewDidLoad 방법에
navigationController?.setNavigationBarHidden(true, animated: true) 

를 사용한다. 두 개의 다른 컨트롤러에서도 탐색 매개 변수를 사용하기 위해 false 매개 변수가 사용됩니다.

응용 프로그램을로드 할 때 - 모두 좋음, NB가 비활성화되어 있습니다. 두 번째 컨트롤러로 가면 모두 정상입니다 - 활성화되어 있습니다. 그러나! 두 번째 컨트롤러의 내비게이션 막대에서 뒤로 버튼을 누르면 사용자가 첫 번째 컨트롤러로 이동합니다 - 내비게이션 막대가 활성화됩니다.

컨트롤러로 돌아갈 때 사용해야하는 특별한 방법이 있습니까? 아무도 나에게 이것을 설명 할 수 있습니까? 도움을 주셔서 감사합니다.

답변

0

뒤로 단추를 누르면 컨트롤러가 다시 작성되지 않기 때문에보기 컨트롤러 viewDidLoad 메서드가 다시 호출되지 않고 탐색 모음의 상태는 이전 상태로 돌아갑니다.

표시된대로 각보기 컨트롤러에 대한 탐색 모음을 업데이트하려면 viewDidLoad 대신 viewWillAppear 메서드로 업데이트해야합니다.

0

viewController의 viewWillAppear 메서드에서 사용합니다.

override func viewWillAppear(animated: Bool) { 
     super.viewWillAppear(animated) 
     self.navigationController?.setNavigationBarHidden(true, animated: true) 
    }